• Stars
    star
    531
  • Rank 83,526 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

开源电子商务项目,SpringBoot+Dubbo技术栈实现微服务,实现一款分布式集群的电商系统. 项目releases链接:https://github.com/u014427391/taoshop/releases (开发中...)

Build Status

电子商务项目

电商项目简介

电子商务项目taoshop

代码已经捐赠给开源中国社区:https://www.oschina.net/p/taoshop

项目releases链接:https://github.com/u014427391/taoshop/releases

本开源电商项目,SpringBoot+Dubbo技术栈实现微服务,实现一款分布式集群的电商系统。(开发中...)

开源协议

taoshop使用Apache2.0开源协议

功能

[门户网站]

  • 商品搜索(Lucene)
  • 最新上架
  • 购物车功能
  • 品目商品搜索
  • 优惠券秒杀(高并发处理)
  • 商品详情
  • 商品品类多级联动

[运营平台]

  • 会员中心
  • 订单系统
  • 店铺管理
  • 评论管理
  • 风控系统
  • 采购平台
  • 内容管理

技术栈

  • 模板引擎:Thymeleaf
  • 搜索引擎:Lucene
  • 负载均衡:Nginx
  • 缓存处理:Redis
  • 后台主要框架:SpringBoot、Mybatis
  • 微服务搭建:Dubbo

平台工程目录

├─taoshop----------------------------父项目,公共依赖
│  │
│  ├─taoshop-search--------------------------全局搜索
│  │
│  ├─taoshop-quartz-----------------------任务调度系统
│  │
│  ├─taoshop-sso-------------------------单点登录工程
│  │
│  ├─taoshop-portal--------------------------门户网站
│  │
│  ├─taoshop-cms--------------------------平台cms系统
|  |
|  |─taoshop-order--------------------------平台订单系统
│  │
│  ├─paascloud-provider
│  │  │
│  │  │
│  │  ├─taoshop-provider-usc------------------用户信息服务中心
|  |  |
|  |  |-taoshop-provider-item------------------商品信息服务中心
|  |  |
|  |  |-taoshop-provider-shop------------------商铺信息服务中心
│  │  │
│  │  └─taoshop-provider-order------------------订单信息服务中心
│  │
│  ├─taoshop-provider-api
│  │  │
│  │  │-taoshop-provider-api-usc------------------用户信息服务API
|  |  |
|  |  |-taosho-provider-api-item------------------商品信息服务API
|  |  |
|  |  |-taoshop-provider-api-shop------------------商铺信息服务API
|  |  |
│  │  └─taoshop-provider-api-order------------------订单信息服务API
│  │
│  ├─taoshop-common
│  │  │
│  │  ├─taoshop-common-core------------------平台核心依赖服务
│  │  │
│  │  ├─taoshop-common-zk------------------zookeeper配置工程
│  │  │
│  │  ├─taoshop-common-quartz------------------任务调度服务
│  │  │
│  │  ├─taoshop-security-core------------------安全服务核心服务
│  │  │
│  │  └─taoshop-security-auth2------------------API认证授权服务
│  │




架构设计

Image text

平台功能演示

运营系统登录 Image text

订单管理页面 Image text

附录

一、分布式基本知识

1.1) 架构演变

在这里插入图片描述

先给出dubbo官方的图,图片表示了架构的演变。然后我说一下自己的理解。

应用最开始是单体应用,即一个应用包括了所有应用模块。

随后就是垂直应用架构,也就是将系统拆分为多个应用模块。

随后就是RPC架构,之前的垂直应用架构其实可以说是在一个进程内的通讯,而RPC就是一种进步,RPC是进程之间的通讯,远程过程调用就是这么来的。

有了RPC之后,虽然可以实现进程之间的通讯,但是服务器集群后的服务器资源利用有些时候容易造成浪费,比如有个系统,一般情况都是不能很好地预估需要分配多少机器的,很容易造成一种情况就是业务访问很频繁的模块分配了不足的机器,而访问不是很频繁的模块分配了太多的机器,这种情况就不能实现资源的很好利用,所以针对这种情况就有了SOA(Service Oriented Architecture)的出现,SOA其实就是一个服务注册中心,可以实现资源调度,合理地分配资源,提高资源调度,是一个治理中心。

1.2)、分布式基本概念

所以我们了解了架构演变之后,就可以更好的理解分布式,分布式其实就是一种可以实现不同进程之间通讯的架构,然后进程之间怎么通讯的?一般都是通过RPC框架实现。比如Java方面的,Dubbo框架或者Spring Cloud。

二、RCP简介

2.1) RPC概念

RPC:全称远程过程调用,是一种进程间的通信的方式,它所做的事情就是实现进程内的通信,允许调用另外一个地址空间,可以是共享网络里的另外一台机器。

2.2) RPC核心模块

RPC有两个核心模块:通信和序列化

三、Dubbo原理简介

3.1) Dubbo简介

Dubbo是阿里巴巴开源的一款Java RPC框架,现在已经捐赠给Apache 官网:http://dubbo.apache.org/

3.2) 核心功能

a、智能容错和负载均衡

b、服务注册和发现

c、面向接口的远程方法调用

3.3) 原理简介

在这里插入图片描述

上图是Dubbo官方的图

角色

Provider:暴露服务的服务提供者

Container:服务运行的容器

Consumer:调用远程服务的消费者

Registry:服务注册和发现的注册中心

Minitor:统计服务调用次数和时间的监控中心

调用

下面根据我的理解说明一下

0:服务器容器负责启动、加载、运行服务提供者

1:服务提供者在启动后就可以向注册中心暴露服务

2:服务消费者在启动后就可以向注册中心订阅想要的服务

3:注册中心向服务消费者返回服务调用列表

4:服务消费者基于软负载均衡算法调用服务提供者的服务,这个服务提供者有可能是一个服务提供者列表,调用那个服务提供者就是根据负载均衡来调用了

5:服务提供者和服务消费者定时将保存在内存中的服务调用次数和服务调用时间推送给监控中心

博客记录

为了帮助学习者更好地理解代码,下面给出自己写的一些博客链接

单点登录

消息队列

搜索引擎

Dubbo

分布式锁

SpringBoot

Mybatis

缓存

设计模式

创建型

结构型

行为型

Oracle知识

More Repositories

1

jeeplatform

一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区
JavaScript
1,424
star
2

travelapp

旅游自助系统。分为Android APP和Web管理系统JAVA旅游自助系统, 是一套开源的项目,系统具有完整的源代码和数据库,以及配套的文档。因为是一个课程设计,功能很简单,所以只能参考学习
JavaScript
132
star
3

elemeimitate

基于安卓的网上订餐系统项目,仿饿了么APP,通过Volley框架进行网络数据交互,前端使用Android的Fragment,界面简洁,是一款基于C/S架构的APP系统,APP服务器采用Java开发
Java
118
star
4

springbootexamples

SpringBoot系列教程:本专栏基于Springboot2.0,配套自己写的代码例子,内容设计基本的配置用法,web,数据库,Redis,也涉及到企业级开发的消息队列,dubbo,搜索引擎等方面,并有源码的简单分析,适合作为入门教程
Java
90
star
5

chitchat1.0

基于C++Qt4的白鸽局域网聊天器。可以实现群聊,互发信息 可以根据用户需要设置字体的颜色,加粗,倾斜,加下划线 发送图片 向好友发送图片等等功能
C++
27
star
6

myblog

项目:一款Github上开源的博客系统项目 目的:对学到的框架、开源组件、前端技术进行应用学习。同时开发完成后写技术博客,开源到Github上
JavaScript
21
star
7

sso

单点登录系统
Java
16
star
8

lexer1.1.0

Java编写的C语言词法分析器,Java编写的C语言词法分析器 120号为关键字,用下标表示,i+1就是其机器码; 2140号为操作符,用下标表示,i+21就是其机器码; 41~60号为分界符, 用下标表示,i+41就是其机器码; 用户自定义的标识符,其机器码为51; 常数的机器码为52; 不可以识别的标识符,其机器码为0 选择打开按钮,选择文件所在的路径,单击打开,分析器会获取文件的内容,并将其复制到文本域里,本词法分析器就可以对文本域里的内容进行剪切复制黏贴和清除等编辑操作
Java
12
star
9

newsapp

基于Android的新闻信息系统
Java
11
star
10

ceeprescoms

MFC做界面的高考预录数据信息管理系统(C++)
C++
8
star
11

oracle_optimize_sql

Oracle SQL调优相关脚本
PLSQL
3
star
12

springCloudExamples

Java
1
star