- 博客(57)
- 收藏
- 关注
原创 (八)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--平台管理功能清单设计
上一篇文章我们介绍了鸿鹄云商b2b2c o2o微服务层设计方案,关于使用的技术架构的技术点我这边不做重复介绍,如果有兴趣的朋友可以去看一下我之前写过的《构建spring cloud架构》系列文章,因为我一直在强调鸿鹄云商b2b2c o2o平台,所以我们重点讲解的是鸿鹄云商平台的相关技能知识,从本篇文章开始,我们将针对于鸿鹄云商b2b2c o2o每一个平台和微服务进行功能和技能剖析,让更多的读者认识...
2019-07-23 09:03:31 389 1
原创 (七)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--微服务层设计
上一篇文章我们介绍了鸿鹄云商b2b2c o2o微服务部署方案,其实很多读者都在关注微服务层是如何设计的,其中包括微服务架构、规则流程、定义标准,其实本篇文章不想过多的重复介绍,之前有给大家讲解过微服务架构图和部署解决方案,下面直接通过一张设计图给大家整体介绍鸿鹄云商b2b2c微服务层设计,后面我们会通过剖析所有功能点,将详细的业务和设计过程详细讲解,也希望更多的人了解鸿鹄云商b2b2c平台的设计方...
2019-07-19 18:23:44 325 1
原创 (六)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--部署架构
上一篇文章我们介绍了鸿鹄云商b2b2c o2o基础的部署方案,考虑到项目部署中架构拓展性、伸缩性、可用性、安全性、开放性、准确性、可维护性的特点,我们针对鸿鹄云商平台b2b2c制定整体部署架构方案,我这里不做更多的介绍,直接上图,希望能通过部署架构图让更多的读者理解。以上是我参与的Spring Cloud B2B2C O2O鸿鹄云商平台-部署架构解决方案,从现在开始,我会将每一个细节点落实到文...
2019-07-19 18:16:57 351 1
原创 (五)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--技术框架3
上一篇文章我们介绍了spring cloud框架几个核心组件,本篇文章考虑到项目的部署方案及服务与服务之间的组合及协作能力,我们从这两方面入手着手讲一下鸿鹄云商b2b2c平台技术框架解决方案。Docker资源的统一部署、调配和动态负载均衡管理由Master统一管理Docker中各Pod应用的部署、调配和动态负载均衡当某应用临时高负载或业务量增长需要,需要调配资源时,由Master统一...
2019-07-19 18:10:55 291 1
原创 (四)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--技术框架2
上一篇文章,我们从业务规划、可拓展性对整个鸿鹄云商b2b2c o2o平台做了技术架构规划,设计核心思想为:业务模块化、服务化、原子化的解决方案,本篇文章是技术框架的升级版本,我们将讲解一下spring cloud微服务框架的优势,因为网上的资料很多,我这边只列了一下核心组件优势。微服务框架(基于开源技术的分布式、服务化框架),采用微服务架构,降低了系统之间的耦合性,降低了单个应用故障对业务系统的...
2019-07-17 10:38:48 273 1
原创 (三)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--技术框架
公司要搭建未来服务开发的统一标准,也考虑到框架的可拓展及可伸缩性,能够顺应时代的潮流,鸿鹄云商平台(honghu)业务的可拓展性比较随性,考虑到未来运营方案多样化及快速响应产品&用户需求、新业务的快速迭代变更,作为平台的总架构师,我推荐公司使用当前业界最流行的Spring Cloud分布式微服务云解决方案来实施产品b2b2c云商平台研发,技术架构如下:MICROSERVICES:前端框...
2019-07-17 10:03:20 411 1
原创 (二)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--b2b2c平台规划
由于公司要做整套电子商务解决方案,考虑到平台的通用性(其中b2b、b2c、o2o、小程序,都离不开基础平台),优先给公司规划: 平台管理端(统一管理,包含自营店铺)、商家管理端(可以入驻,多租户模式)、买家端(支持PC、h5/公众号、小程序、ios/android)三个通用平台。平台管理端,因为考虑到平台管理的用户访问量比较小,而且都是一些针对于数据表单的操作,如:清单列表、分页、添加、修改、删...
2019-07-17 09:53:15 504 1
原创 (一)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--概述
近期公司正在升级Spring Cloud版本的b2b2c o2o鸿鹄云商平台,我亲自参与了整个产品的研发及升级工作。大概统计了一下,用Java Spring Cloud技术研发电子商务平台的公司少之甚少,借此我想将整个研发的过程通过博客的方式分享出来,希望各位IT网友看到此系列文章多给本人留言,一起进步。第一篇文章我不会过多的强调技术,而是通过清单方式给大家展示一下整个b2b2c o2o全套解决...
2019-07-17 09:48:18 424 1
原创 (六十五)java版spring cloud微服务架构b2b2c电子商务平台-Hystrix监控面板
在Spring Cloud中构建一个Hystrix Dashboard非常简单,只需要下面四步:创建一个标准的Spring Boot工程,命名为:hystrix-dashboard。编辑pom.xml,具体依赖内容如下:<parent><groupId>org.springframework.cloud</groupId><artifactId&...
2019-07-17 08:48:45 103 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-Feign自定义注解翻译器
一 新建自定义注解MyUrlpackage org.crazyit.cloud.contract; import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annot...
2019-07-25 09:32:01 169 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-Ribbon负载均衡策略配置
Ribbon作为后端负载均衡器,比Nginx更注重的是承担并发而不是请求分发,可以直接感知后台动态变化来指定分发策略。它一共提供了7种负载均衡策略:这里以随机访问策略来举个例子:1、ribbon配置文件添加:service-B.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule其中service...
2019-07-25 08:56:12 141 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-自定义feign配置与服务调用的安全验证
feign的使用,可以简化服务之间的调用,让服务之间调用更加优雅,本文从feign自定义配置和创建feign完成服务之间复杂权限验证,来进一步理解和定制feign。自定义配置创建Feign的配置类@Configurationpublic class FeignConfiguration{ @Bean public Contract feignContract(){ ...
2019-07-24 09:41:05 120 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-Task数据源配置
Spring Cloud Task开箱即用的属性配置项由DefaultTaskConfigurer和SimpleTaskConfiguration类来管理,本篇文章对Spring Cloud Task的数据源配置进行分析。数据源配置数据源选择spring cloud task使用数据源(如mysql)来存储task的执行结果。如果没有自定义配置数据源,则默认使用 H2 嵌入式内存数据库作...
2019-07-24 09:27:44 230 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-kafka处理超大消息
Kafka设计的初衷是迅速处理短小的消息,一般10K大小的消息吞吐性能最好。但有时候,我们需要处理更大的消息,比如XML文档或JSON内容,一个消息差不多有10-100M,这种情况下,Kakfa应该如何处理?针对这个问题,有以下几个建议:最好的方法是不直接传送这些大的数据。如果有共享存储,如NAS, HDFS, S3等,可以把这些大的文件存放到共享存储,然后使用Kafka来传送文件的位置信息。...
2019-07-24 09:24:20 153 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-Spring Cloud Eureka自我保护机制
自我保护背景首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。默认情况下,如果Eureka Server在一定时间内(默认90秒)没有接收到某个微服务实例的心跳,Eureka Server将会移除该实例。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运...
2019-07-24 09:00:16 117 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-springcloud 断路器
在分布式环境下,特别是微服务结构的分布式系统中, 一个软件系统调用另外一个远程系统是非常普遍的。这种远程调用的被调用方可能是另外一个进程,或者是跨网路的另外一台主机, 这种远程的调用和进程的内部调用最大的区别是,远程调用可能会失败,或者挂起而没有任何回应,直到超时。更坏的情况是, 如果有多个调用者对同一个挂起的服务进行调用,那么就很有可能的是一个服务的超时等待迅速蔓延到整个分布式系统,引起连锁反应...
2019-07-24 08:49:55 380 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-Feign使用及源码深度解析
SpringCloud Feign基于Netflix Feign实现,整合SpringCloud Ribbon和SpringCloud Hystrix我们在使用微服务框架的时候,一般都会在项目中同时使用Ribbon和Hystrix,所以可以考虑直接使用Feign来整合1.Feign的使用我们现在需要创建一个服务消费者应用,消费服务提供者的服务1)引入maven依赖<dependen...
2019-07-23 09:14:28 109 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-搭建一个简单的Eureka程序
Eureka集群主要有三个部分Eureka服务器,服务提供者,服务调用者简单的来说就是服务提供者将服务注册到Eureka服务器,服务调用者对其服务进行查找调用。一.搭建服务器1.引入maven依赖,使用官方文档中的依赖的结果还是启动不起来,缺少日志相关的依赖,另外自己添加了几个依赖后就OK了<dependencyManagement> <dependencies&...
2019-07-23 09:11:40 172 1
原创 java版spring cloud微服务架构b2b2c电子商务平台--Spring Cloud与Dubbo对比
spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud与Dubbo对比提到Dubbo,我想顺便提下ESB,目前央视新华社也在用ESB来做任务编排,这里先比较下Dubbo和ESB:ESB(...
2019-07-23 09:08:44 135 1
原创 java版spring cloud微服务架构b2b2c电子商务平台-自定义feign配置与服务调用的安全验证
feign的使用,可以简化服务之间的调用,让服务之间调用更加优雅,本文从feign自定义配置和创建feign完成服务之间复杂权限验证,来进一步理解和定制feign。自定义配置创建Feign的配置类@Configurationpublic class FeignConfiguration{ @Bean public Contract feignContract(){ ...
2019-07-22 09:30:56 153 1
原创 (十八)java版spring cloud微服务架构b2b2c电子商务平台-搭建eureka
创建项目即普通创建即可创建完毕之后需要将原先的pom文件跟改一下作为父项目使用pom代码<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding&g...
2019-07-22 09:22:00 98 1
原创 (十七)java版spring cloud微服务架构b2b2c电子商务平台-高可用的服务注册中心
一、准备工作Eureka can be made even more resilient and available by running multiple instances and asking them to register with each other. In fact, this is the default behaviour, so all you need to do to ...
2019-07-22 09:14:33 73 1
原创 (十六)java版spring cloud微服务架构b2b2c电子商务平台-Hystrix请求合并
一、请求合并适用的场景在服务提供者提供了返回单个对象和多个对象的查询接口,并且单个对象的查询并发数很高,服务提供者负载较高的时候,我们就可以使用请求合并来降低服务提供者的负载。实现请求合并1、传统方式首先在服务提供者的GetRequestController中添加两个接口,用于打印是哪个方法被调用 /** * 为Hystrix请求合并提供的接口 */ @Ge...
2019-07-22 09:04:59 79 1
原创 (十五)java版spring cloud微服务架构b2b2c电子商务平台-Zuul的使用
一、 Zuul的介绍Zuul一个基于JVM路由和服务端的负载均衡器,在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。路由功能:相当于nginx的反向代理功能。比如:/ 可能需要映射到你的web应用, /api/users 映射到用户服务,/api/shop 映射到商城服务。二、 新建项目1、 加入依赖包<dependency><groupId>org...
2019-07-22 08:52:46 114 1
原创 (十四)java版spring cloud微服务架构b2b2c电子商务平台-Hystrix项目中使用
一、公共类、不是必须的package com.xxx.xxx.xxx.data.command.dubbo;import com.netflix.hystrix.*;public abstract class AbstractDubboCommand<T> extends HystrixCommand<T> { /** * @param com...
2019-07-19 09:17:24 140 1
原创 (十二)java版spring cloud微服务架构b2b2c电子商务平台-Stream 构建消息驱动微服务
Spring Cloud Stream 的几个概念Spring Cloud Stream is a framework for building message-driven microservice applications.官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架。应用程序通过 inputs 或者 outputs 来与 Spring Cloud S...
2019-07-19 09:06:44 112 1
原创 (十)java版spring cloud微服务架构b2b2c电子商务平台-基于Rabbitmq实现延迟消息
1.预备知识1.1 消息传递首先我们知道消费者是从队列中获取消息的,那么消息是如何到达队列的?当我们发送一条消息时,首先会发给交换器(exchange),交换器根据规则(路由键:routing key)将会确定消息投递到那个队列(queue)。需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六带着这几个关键字:交换器、路由键...
2019-07-19 09:03:05 104 1
原创 (九)java版spring cloud微服务架构b2b2c电子商务平台- Gateway初体验
简介Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。本文首先用官方的案例带领大家来体验下Spring Cloud的一些简单的功能,在后续文章我会使用详细的案例和源码解析来详细讲解Spring Cloud Gateway.创建工程新建一个...
2019-07-18 09:49:04 124 1
原创 (八)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--服务网关
通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了。比如下图所示:我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及均衡负载;通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理。为了使得服务集群更为健...
2019-07-18 09:43:19 98 1
原创 (七)java版spring cloud微服务架构b2b2c电子商务平台--Ribbon 基本使用
具体内容现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之中,而客户端的调用也应该通过 Eureka 完成。而这种调用就可以利用 Ribbon 技术来实现。Ribbon 是一个服务调用的组件,并且是一个客户端实现负载均衡处理的组件。服务器端实现负...
2019-07-18 09:18:37 103 1
原创 (六十九)java版spring cloud微服务架构b2b2c电子商务平台--Hystrix 基本配置
1、 【microcloud-provider-dept-hystrix-8001】修改 pom.xml 配置文件,追加 Hystrix 配置类: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spr...
2019-07-18 09:13:51 103 1
原创 (六十八)java版spring cloud微服务架构b2b2c电子商务平台-分布式配置中心(加密解密)
在微服务架构中,我们通常都会采用DevOps的组织方式来降低因团队间沟通造成的巨大成本,以加速微服务应用的交付能力。这就使得原本由运维团队控制的线上信息将交由微服务所属组织的成员自行维护,其中将会包括大量的敏感信息,比如:数据库的账户与密码等。很显然,如果我们直接将敏感信息以明文的方式存储于微服务应用的配置文件中是非常危险的。针对这个问题,Spring Cloud Config提供了对属性进行加密...
2019-07-17 08:58:44 108 1
原创 (六十四)java版spring cloud微服务架构b2b2c电子商务平台-配置中心svn示例和refresh
国内很多公司都使用的svn来做代码的版本控制,我们先介绍以下如何使用svn+Spring Cloud Config来做配置中心。svn版本同样先示例server端的代码,基本步骤一样。1、添加依赖<dependencies> <dependency> <groupId>org.springframework.cloud</g...
2019-07-17 08:46:02 171 1
原创 (六十三)java版spring cloud微服务架构b2b2c电子商务平台-服务网关过滤器
过滤器作用我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会将所有的微服务接口都对它们开放。然而,目前的服务路由并没有限制权限这样的功能,所有请求都会被毫无保留地转发到具体的应用并返回结果,为了实现对客户端请求的安全校验和权限控制,最简单和粗暴的方法就是为每个微服务应用都实现一...
2019-07-17 08:41:58 96 1
原创 (六十二)java版spring cloud微服务架构b2b2c电子商务平台-spring cloud 概述
什么是微服务?微服务没有一个标准统一的概念,个人理解为:微服务是一种可以让软件职责单一、松耦合、自包含、可以独立运行和部署的架构思想。关键思想就是:拆分、单一、独立、组件化。把原本一个庞大、复杂的项目按业务边界拆分一个一个独立运行的小项目,通过接口的方式组装成一个大的项目。微服务解决了什么问题?微服务的出现及流行,一定有它的过人之处,既解决了非微服务项目的部分问题或缺点。相对于微服务,普...
2019-07-15 09:36:57 134 2
原创 (六十一)java版spring cloud微服务架构b2b2c电子商务平台-Zuul回退机制
1、在一些不稳定因素导致路由后面的微服务宕机或者无响应时,zuul 就会累计大量的请求,久而久之基本上所有的请求都会超时,但是请求链接数却不断的在增加,不断的占用资源池不能结束知道超时消耗殆尽导致zuul微服务死机,整体挂机消亡;2、而 zuul 在这种情况下,提供一种很好的回退机制,针对大量请求时提供了友好的熔断机制,确保在路由微服务修复前,尽量将过多的请求快速响应返回,减轻zuul的压力;...
2019-07-15 09:29:35 100 1
原创 (六十)java版spring cloud微服务架构b2b2c电子商务平台-Zuul
API 服务网关顾名思义就是统一入口,类似 nginx、F5 等功能一样,统一代理控制请求入口,弱化各个微服务被客户端记忆功能;本章节主要讲解了使用 zuul 的代理功能与反向代理功能,当然 zuul 还有很多属性设置,我就没一一列举所有的测试方法了;二、实现步骤2.1 添加 maven 引用包<?xml version="1.0" encoding="UTF-8"?><...
2019-07-15 09:24:33 115 1
原创 (五十九)java版spring cloud微服务架构b2b2c电子商务平台-简单 Quartz 微服务
一、大致介绍1、本章节仅仅只是为了测试 Quartz 在微服务中的使用情况;2、其实若只是简单的实现任务调用而言的话,SpringBoot 的 Schedule 这个注解即可满足需求,但是注意该注解不支持分布式;3、注意:配置文件中的 mysql 数据库链接配置大家就各自配置;二、实现步骤2.1 添加 maven 引用包<?xml version="1.0" encoding="...
2019-07-15 09:19:59 96 1
原创 (五十八)java版spring cloud微服务架构b2b2c电子商务平台-消息队列之 RabbitMQ
常见的消息队列目前业界有四款常用的消息队列,它们分别是RabbitMQ、RocketMQ、ActiveMQ和Kafka。RabbitMQRabbitMQ在2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最流行的消息中间件之一。 RabbitMQ的主要特性有:可靠性: RabbitMQ提供了多种技术可以让你在性能和可靠性之间进行权衡。这些技术包括...
2019-07-12 09:13:27 88 1
原创 (五十七)java版spring cloud微服务架构b2b2c电子商务平台-Stream主要概念
Spring Cloud Stream提供了一些简化了消息驱动的微服务应用程序编写的抽象和原语。本节概述了以下内容:Spring Cloud Stream的应用模型Binder抽象持续的发布 - 订阅支持消费者群体支持分区支持应用模型一个Spring Cloud Stream应用程序由一个中间件中立的核心组成。该应用程序通过Spring Cloud Stream注入到其中的输入和输出...
2019-07-12 09:08:40 173 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人