Spring Cloud

Nacos(一):Nacos介绍

橙三吉。 提交于 2020-11-24 03:28:54
前言 6月份阿里开源的Nacos出了1.0.1版本,从去年7月份第一个release版本到现在一直在默默关注 官方的版本规划为:Nacos从0.8.0开始支持生产可用,1.0版本可大规模生产可用,2.0版本接入k8s、SpringCloud、ServiceMesh、ServerLess 公司目前的项目都是Springcloud,由于eureka2.X的断更、以及Nacos面世,所以自然而然最近就进行了一次试水爬坑,虽然过程艰苦,但是最终效果似乎还不错。 本文主要从以下几点来带大家熟悉下Nacos Nacos是什么 Nacos的发展历程 Nacos能做什么 Nacos无缝接入各大生态 Nacos是什么 Nacos是什么?好像没听过,不要紧。那Eureka听说过吧,在SpringCloud中做服务注册中心组件,类似的还有Zookeeper、Consul。 所以Nacos也是一个注册中心组件咯,当然是,不过 它不仅仅是注册中心 。 Nacos也是一个配置中心 ,比如SpringCloud中的Config,将配置文件版本化管理。 那么Nacos到底是什么呢, 总结为官网一句话就是: Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos的发展历程

一个失败的微服务项目

只愿长相守 提交于 2020-11-24 02:21:38
一个失败的微服务项目,这是我项目的总结.失败的主要原因是对微服务的滥用,本文将总结微服务在本项目中暴露出的缺点 项目简介 这是一个休息游戏项目,主线是喂养一只可爱的小狗, 通过玩内置小游戏,或者做任务积累狗粮.在整个过程中会随机掉落红包, 红包可以之间兑换少量RMB,游戏以用户点击广告作为主要收入, 用户转化是另一部分收入 项目概况 项目分游戏端和管理端 游戏端: 游戏大厅(主界面,包含:玩家信息\邀请\站内信\成长记录\签到等) 排行榜 幸运大盘 成长任务 多款小游戏 管理端: 基础权限管理 用户管理 提现 报表 版本管理 广告与渠道 维护 人员配置 策划 x2 美术 x3 音效 x1 游戏前端(Cocos) x3 游戏后端(java) x2 管理前端(vue) x2 管理后端(java) x4 测试 x2 运维 x2 运营 x1 后端架构 spring-cloud Hoxton.SR3作为微服务框架 nacos 做服务注册发现以及配置中心 swagger2 生成doc redis 做缓存 mysql mybatis + mybatis-plus 做持久层 kafka 做消息中间件 jwt 生成token elasticsearch 做报表 每个微服务由两个模块组成,一个模块api接口,一个模块对接口进行实现, api接口用@FeignClient进行注解

7 个高 Star 开源项目带你轻松玩转微服务

心已入冬 提交于 2020-11-23 17:42:16
今天为大家推荐的是 Gitee 上微服务相关的高 Star 开源项目,其中有开发平台、框架、工具包等等,一定能够让你的微服务之路如虎添翼,一起来看看它们都是谁吧! 1.SpringBlade 项目作者: smallchill 开源许可协议: Apache-2.0 项目地址: https://gitee.com/smallc/SpringBlade 前后端分离的微服务开发平台。采用Spring Boot 2 、Spring Cloud Hoxton 、Mybatis 等核心技术,同时提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。 2.JBoot 项目作者: fuhai 开源许可协议: Apache-2.0 项目地址: https://gitee.com/JbootProjects/jboot 一个基于 JFinal 的微服务框架,SpringCloud 之外的另一个选择,目前已经开源超过了 3 年的时间,迭代了 100+ 个版本,已经被超过 1000+ 公司在使用。 3.mica 项目作者: 如梦技术 开源许可协议: LGPL-3.0 项目地址: https://gitee.com/596392912/mica Mica,Spring Cloud 微服务开发核心包,支持 web 和 webflux。 4.SOP 项目作者: tanghc

Spring Cloud|03 Spring Cloud与Dubbo

时光总嘲笑我的痴心妄想 提交于 2020-11-23 08:52:51
几点说明 1、本系列Spring Cloud的博客参考了方志朋所著《深入理解Spring Cloud与微服务构建》; 2、大家如果想更加深入的理解Spring Cloud 建议多实战、多看书; Dubbo简介 介绍 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力: 面向接口的远程方法调用:封装了长连接的NIO框架,例如:Netty、Mina等等; 智能容错和负载均衡; 服务自动注册和发现; 集成Apache的Zookeeper组件,用于用户的注册与发现; Dubbo框架的运行流程如下: 服务提供者注册进入服务注册中心; 服务消费者订阅服务; 服务消费者发现服务; 服务消费者通过远程调度来找到服务提供者进行服务的消费; 服务消费者和服务提供者定时发送心跳数据到服务监控中心用于记录调用次数和时间; Dubbo的优点: 连通性: 服务注册中心、服务提供者、服务消费者、服务监控中心都是长连接; 健壮性: 监控中心宕机不会影响其他的服务的正常进行,服务器集群配置的话,任意一个服务的宕机都不会影响整体的服务的运行状况; 伸缩性: 可以动态增减注册中心与服务的实例数量; 升级性: 服务器集群升级,不会对现有架构造成压力

Spring Cloud第三篇:服务消费者Feign

爱⌒轻易说出口 提交于 2020-11-23 08:36:05
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。 一、Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 简而言之: Feign 采用的是基于接口的注解 Feign 整合了ribbon 二、准备工作 继续用上一节的工程, 启动eureka-server,端口为8761; 启动service-hi 两次,端口分别为8762 、8773. 三、创建一个feign的服务 新建一个spring-boot工程,取名为serice-feign,在它的pom文件引入Feign的起步依赖spring-cloud-starter-feign、Eureka的起步依赖spring-cloud-starter-eureka、Web的起步依赖spring-boot-starter-web,代码如下: <dependency> <groupId> org.springframework.cloud </groupId> <artifactId> spring-cloud

Spring Cloud 源码学习之 Hystrix 熔断器

南笙酒味 提交于 2020-11-23 08:24:29
文中源码基于 Spring Cloud Finchley.SR1 、Spring Boot 2.0.6.RELEASE . 本文学习了Hystrix熔断器的原理、配置和源码,包含滑动窗口、状态变化等。 简介 circuit-breaker: circuit表示电路,大家译为熔断器非常精准。 回想起小时候,家里保险丝突然被烧断,需 手工更换一根新的保险丝 ;后来,保险丝被取代,电流过大时会跳闸, 闸拉上去后立马恢复供电 ;等到上大学时,只要打开功率高一点的电吹风,砰的一声就断电,但过10分钟就 自动来电 。在电流过大时,通过熔断机制以保护电路和家电。 Hystrix 属于上面的第三种, 一种自动恢复的智能熔断器 ,区别在于它保护的是系统,且判断 “电流过大” 的方式是: 不断收集请求指标信息(sucess、failure、timeout、rejection),当达到设定熔断条件时(默认是请求失败率达到50%)进行熔断。 在 Spring Cloud 源码学习之 Hystrix Metrics 收集 一文中,学习了 Metrics 收集,这是上文的图。 Hystrix Command 执行过程中,各种情况都以事件形式发出,再封装成特定的数据结构,最后汇入到事件流中(HystrixEventStream)。事件流提供了 observe() 方法,摇身一变,事件流把自己变成了一个数据源

Spring Cloud 2.x系列之服务发现&服务消费者Feign

谁都会走 提交于 2020-11-23 06:03:20
视频路其实一直都在那里,只是我们看不到而已! spring cloud 的 Netflix 中提供了两个组件实现软负载均衡调用,分别是 Ribbon 和 Feign 。上一篇和大家一起学习了 Ribbon 。 Ribbon : Spring CloudRibbon 是基于 HTTP 和 TCP 的客户端负载工具,它是基于 Netflix Ribbon 实现的 , 它可以在客户端配置 ribbonServerList (服务端列表),然后轮询请求以实现均衡负载。 Feign : spring cloudfeign 是一个使用起来更加方便的 HTTP 客戶端。 在使用 ribbon 时,通常会使用 RestTemplate 实现对 http 请求的封装,形成了模板化的调用方法。 springcloud feign 在此基础上做了进一步的封装, Feign 是一种声明式、模板化的 HTTP 客户端。在 Spring Cloud 中使用 Feign, 可以做到使用 HTTP 请求远程服务时能与调用本地方法一样的编码体验,完全感知不到这是远程方法,更感知不到这是个 HTTP 请求。 1、 新建项目 sc-eureka-client-consumer-feign ,对应的 pom.xml 文件如下 < project xmlns = "http://maven.apache.org/POM/4

一位8年Java工作经验的高级架构师的学习路线图谱

允我心安 提交于 2020-11-22 09:52:15
从小白级到工作8年需要掌握的技术栈大概如下: 0-1年入门: Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性) Web编程初探(Servlet+MySQL数据库+商品管理系统实战) SSM从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版+Git+Maven) SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系统实战) 零距离互联网项目实战(Linux+Redis+双十一秒杀实战系统) 1-3年高工: 并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化) JVM深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC算法和垃圾回收器+类加载机制等) MySQL深度进阶 深入Tomcat底层(线程模型+性能调优) 3-5年资深: 数据库(调优+事务+锁+集群+主从+缓存等) Linux(命令+生产环境+日志+Nginx等) 中间件&分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等组件) 5-8年架构: 开源框架(Spring5源码+SpringMVC源码+Mybatis源码) 分布式架构(Zk实战+RabbitMQ

6 月程序员工资出炉,Java 程序员酸了!

ぐ巨炮叔叔 提交于 2020-11-22 06:43:17
2020 魔幻开局,不少企业开始缩减招聘名额,更别说涨薪了!据第三方统计,今年 6 月程序员平均工资 14404 元,工资中位数 12500 元。作为第一编程语言的 Java,平均工资 14433元。 程序员薪资相较于上个月继续下跌。不少网友 感叹互联网环境大不如前了,而且近些年学习 Java 的人也越来越多,竞争环境激烈。 想拿到一份理想薪酬的工作越来越“南”! 好消息是,虽然薪资下降了,但 6 月的招聘岗位比上个月多了起来,随着经济好转,之前有用心沉淀技术、储备技能、调查过市场主流需求的朋友,可以操练起来了。 其 实,对于 Java 人来说,评估其技术能力的维度无非就是这几个方面—— 主流技术框架、源码阅读能力、高并发设计经验、项目实战、架构设计 。 招聘热度正不断加温,为了能让急需提升的伙伴,少走些弯路, 在有限时间内补齐短板, 这里再次推荐下开课吧与众头部互联网公司深度合作的 《Java EE 企业级分布式高级架构师》 ( 如果觉得很对口,我这里还争取了10个优惠预约名额 )。 不同于市面上一些训练营或培训班,知识点零零散散,又缺乏一定的深度。该 课程由开课吧与 廖雪峰 老师深度合作,联合众一线互联网企业架构师 / 技术负责人,倾力打造,课程体系全面深入,旨在帮助 Java 人于较短时间内突破技术瓶颈,扫清面试障碍,早日实现职业晋升。 课程已开设 16 期,已经有 3600