1 Star 0 Fork 34

xiaokkkkk / microunimall

forked from dobbinsoft / microunimall 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

microunimall 是unimall的微服务版,接口与unimall 98% 一致,使用微服务版无需额外进行前端开发。microunimall采用SpringBoot、Dubbo等易用框架,提供限流网关、分布式事务等。 unimall使用uniapp前端框架,可同时编译到 微信小程序、H5、Android App、iOS App等几个平台,可为中小商户企业节约大量维护成本。也可支撑中小商户企业前期平台横扩需求。


QQ讨论群:656676341 (进群前,请在网页右上角点star)

优先更新地址:https://gitee.com/iotechn/microunimall

集群版地址:https://gitee.com/iotechn/unimall 减少部署机器


技术总览

技术 选型
IoC、Aop SpringBoot
持久层 MyBatis-Plus + MySQL
缓存、锁 Redis
路由网关 自编写
限流框架 Sentinel
分布式事务 Seata
RPC Dubbo
服务降级 Dubbo Mock 或 Seata
注册中心 Nacos
动态配置 - TODO -
搜索引擎 - TODO -
技术 选型
前台前端 uniapp
后台前端 vuejs + elementui

服务总览

服务从下到上。DOING 表示可用,但还有计划的功能没完成!

服务 职责 完成
搜索服务 商品搜索 TODO
用户服务 用户登录、注册等 DONE
费用服务 优惠券、运费、其他活动 DOING
展示服务 买家评论、买家秀 DOING
商品服务 商品浏览、购买、收藏、购物车等 DONE
订单服务 订单浏览、创建、支付等 DONE
广告服务 前台界面内容管理 DOING
管理服务 用户、商品、订单等后台管理 TODO
API网关 路由转发、权限校验、网关限流 DONE

架构总览

架构总览

接口变更

unimall 过度到 microunimall 时,有少许接口变更。需要前端适配

appraise.addAppraise -> order.addAppraise (名称变更)

freight.getFreightMoney -> order.preview (名称变更)

前端展示

前端演示

新注解使用

如果不知道HttpOpenApi等注解,请先参考unimall项目中README的二次开发文档。

@HttpMethod(description = "发送验证码到用户手机", rateLimit = RateLimitType.IP, rateQps = 10, rateLimitDurationInSec = 60)

HttpMethod 中加入网关限流功能。

rateLimit 表示限流类型、支持全部限流、用户限流(需要用户登录)、IP限流三种。

rateQps 表示单位时间内,可以允许多少流量。

rateLimitDurationInSec 表示时间窗口宽度

综上所诉的此方法允许六十秒内 同IP允许访问10次。

@EnableUnimallDefaultMysql
@EnableUnimallDefaultRedis
@EnableUnimallSeataGlobalTransaction
public class MicrounimallOrderApplication {
    ...

微服务技术选型按道理是各小组内部决策选型。但是由于所有系统都是一个人写的,所以选型都一样。 所以microunimall提供默认的DB、Redis策略。@EnableUnimallDefaultMysql 和 @EnableUnimallDefaultRedis 注解后,将采用默认的数据库缓存策略。

@EnableUnimallSeataGlobalTransaction 表示该服务加入到分布式事务中。可通过Seata的注解

io.seata.spring.annotation.GlobalTransactional

开启全局事务。

版权声明

本项目有重庆驽驹科技有限公司开发,禁止未经授权用于商业用途。

本项目有重庆驽驹科技有限公司开发,禁止未经授权用于商业用途。

本项目有重庆驽驹科技有限公司开发,禁止未经授权用于商业用途。

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

基于Dubbo的微信开源商城小程序,后端服务microunimall。支持集群部署,分布式部署,灵活配置后端服务能力。使用前后分离的设计,前端使用uniapp编写,可同时生成微信小程序、H5、和双端App。 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/sqidea/microunimall.git
git@gitee.com:sqidea/microunimall.git
sqidea
microunimall
microunimall
master

搜索帮助