微服务事件源项目使用教程

微服务事件源项目使用教程

microservices-event-sourcing Microservices Event Sourcing 是一个微服务架构的在线购物网站,使用Spring Boot、Spring Cloud、Spring Reactor、OAuth2、CQRS 构建,实现了基于Event Sourcing的最终一致性,提供了构建端到端微服务的最佳实践 microservices-event-sourcing 项目地址: https://gitcode.com/gh_mirrors/mi/microservices-event-sourcing

一、项目介绍

微服务事件源(Microservices Event Sourcing)是一个基于微服务架构的在线购物平台。该项目使用Spring Boot、Spring Cloud、Spring Reactor、OAuth2和CQRS构建,实现了基于事件源(Event Sourcing)的最终一致性,为开发者提供了构建端到端微服务的最佳实践。

项目采用分层架构设计,分为Web层、Backing层和Backend层,包含服务发现、边缘服务、配置服务、用户服务、监控服务等多个微服务,以及多种类型的数据库支持,如MySQL、Neo4j、MongoDB和Redis。

二、项目快速启动

1. 环境准备

  • JDK 1.8+
  • Maven 3.5+
  • Neo4j 2.3
  • MongoDB
  • MySQL

2. 数据库配置

为各个微服务创建对应的数据库和用户:

CREATE DATABASE time_store_user CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'time'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON time_store_user.* TO 'time'@'localhost';

CREATE DATABASE time_store_account CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'time'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON time_store_account.* TO 'time'@'localhost';

CREATE DATABASE time_store_catalog CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'time'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON time_store_catalog.* TO 'time'@'localhost';

CREATE DATABASE time_store_cart CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'time'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON time_store_cart.* TO 'time'@'localhost';

启动Neo4j并修改密码为secret

curl -v -u neo4j:neo4j -X POST localhost:7474/user/neo4j/password -H "Content-type:application/json" -d "{\"password\":\"secret\"}"

启动MongoDB服务。

3. 启动微服务

依次启动以下微服务:

mvn spring-boot:run -pl discovery-service
mvn spring-boot:run -pl edge-service
mvn spring-boot:run -pl user-service
mvn spring-boot:run -pl catalog-service
mvn spring-boot:run -pl account-service
mvn spring-boot:run -pl order-service
mvn spring-boot:run -pl inventory-service
mvn spring-boot:run -pl shopping-cart-service
mvn spring-boot:run -pl online-store-app

4. 验证服务

启动完成后,验证服务是否成功注册到Eureka:

  • 访问http://localhost:8761/eureka/apps,查看服务列表。

当所有服务启动完成后,浏览在线购物网站首页:

  • 访问http://localhost:8080/,点击登录,使用用户名user和密码password进行OAuth2.0授权。

三、应用案例和最佳实践

微服务事件源项目提供了以下应用案例和最佳实践:

  • 服务注册与发现:使用Eureka实现服务注册和发现,确保服务之间可以相互通信。
  • 负载均衡:利用Netflix Ribbon实现客户端负载均衡。
  • 断路器:使用Hystrix防止服务雪崩,提高系统可用性。
  • API网关:使用Edge Service作为API网关,处理外部请求和内部服务之间的交互。
  • 配置管理:使用Spring Cloud Config管理服务配置。
  • 事件源:基于事件源实现最终一致性,保证数据一致性。
  • 命令查询职责分离(CQRS):通过CQRS提高系统性能和扩展性。

四、典型生态项目

  • Spring Boot:用于快速构建基于Spring的应用程序。
  • Spring Cloud:提供微服务开发所需的工具和组件。
  • Spring Reactor:反应式编程框架,提高系统响应性和并发处理能力。
  • OAuth2:用于身份认证和授权。
  • CQRS:命令查询职责分离,提高系统性能和可扩展性。
  • Event Sourcing:基于事件源实现数据一致性和业务逻辑。

microservices-event-sourcing Microservices Event Sourcing 是一个微服务架构的在线购物网站,使用Spring Boot、Spring Cloud、Spring Reactor、OAuth2、CQRS 构建,实现了基于Event Sourcing的最终一致性,提供了构建端到端微服务的最佳实践 microservices-event-sourcing 项目地址: https://gitcode.com/gh_mirrors/mi/microservices-event-sourcing

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尚绮令Imogen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值