Nacos

Java Spring Cloud 实战之路-01 框架选型

巧了我就是萌 提交于 2020-05-04 09:29:11
0. 前言 这是一个新的系列,来源于工作中的一个需求,领导准备新开一个项目线路,要求使用Java,项目符合现有主流技术,并要求对并发量有一定的承受能力 ,支持扩展。我和公司的几个小伙伴一起沟通了一下,这不就是标准的Spring Cloud微服务的系统架构吗。 之前读过小高之前发的文章的小伙伴也清楚我是C#开发,不过想当年我也系统学过Java,多年下来虽然手生,但也好歹没有落下技术。于是就揽下了这个活。毕竟学习是终身的。 不怎么简明的介绍了这个系列成立的原因,让我们言归正传,这个系列是我在搭建该项目过程的一个总结,如果后续开发中对框架有调整,也会在这个系列发布后续的更新。这也是为什么叫实战系列,而不是实战教程的原因。 那么,有兴趣的小伙伴,跟我一起来吧~ 1. 项目结构 项目采用maven作为软件包管理工具,Spring boot+Spring Cloud作为项目基础架构,设有配置中心、服务发现中心、网关中心和链路追踪中心以及服务集群,其中服务集群之间添加链路熔断和负载均衡机制。 当然,目前参照了几个系统都按照这种逻辑搭建的框架,所以我们大致上也参考了这个模型。具体如下图: 2. 主要技术组件使用 这里大概介绍一下,我在实践中选用的技术组件,选用这些技术没多少原因,很大程度上考虑到团队喜好以及后续维护的方便,还有就是官方团队的维护上考虑。 2.1 Maven Maven 翻译为"专家

SC-gateway使用简绍

社会主义新天地 提交于 2020-05-03 19:25:15
pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.bootx</groupId> <artifactId>service-gateway</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org

nacos Could not retrieve transation read-only status server

ぐ巨炮叔叔 提交于 2020-05-03 16:52:25
nacos 源码部署: git clone https://github.com/alibaba/nacos.git 导入idea 执行nacos\console工程,单机部署添加参数 -Dnacos.standalone=true 打包部署,在根目录执行,mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U 打包成功后,执行文件在distribution 目录下,接下来和官方的一样执行bin目录下的startup.cmd 编辑配置文件时报错:nacos org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; Could not retrieve transation read-only status server; nested exception is java.sql.SQLException: Could not retrieve transation read-only status server 我的mysql版本时8.0,但是源码的连接池是5.0版本的,改为8.0.4后正常了。 来源: oschina 链接: https://my.oschina.net/u/3971821/blog

Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合

梦想的初衷 提交于 2020-05-02 18:20:43
Dubbo 与 Spring Cloud 完美结合 1. 概述 可能说起来Dubbo,很多人都不陌生,这毕竟是一款从2012年就开始开源的Java RPC框架,中间由于各种各样的原因停止更新4年半的时间,中间只发过一个小版本修了一个小bug,甚至大家都以为这个项目已经死掉了,竟然又在2017年9月份恢复了更新,不可谓不神奇。 网络上很多人都拿Dubbo和Spring Cloud做对比,可能在大家的心目中,这两个框架是可以画上等号的吧,后来在网络上有一个非常流行的表格,比较详细的对比了 Spring Cloud 和 Dubbo ,表格如下: Dubbo SpringCloud 服务注册中心 Zookeeper  Spring Cloud Netfix Eureka 服务调用方式 RPC  REST API 服务监控 Dubbo-monitor Spring Boot Admin 熔断器 不完善 Spring Cloud Netflix Hystrix 服务网关 无 Spring Cloud Netflix Zuul 分布式配置 无 Spring Cloud Config 服务跟踪 无 Spring Cloud Sleuth 数据流 无 Spring Cloud Stream 批量任务 无 Spring Cloud Task 信息总线 无 Spring Cloud Bus

SpringCloudAlibaba微服务实战教程系列

自闭症网瘾萝莉.ら 提交于 2020-05-02 11:40:23
一、应用系列    Docker安装MySql完整教程、实操 使用到的mysql数据库的安装方案。    Docker安装Alibaba Nacos教程 docker安装单实例或集群的Nacos的注册中心方便快速开始。      实现Nacos服务注册与发现教程 通过简单的方式进行服务注册与调用     ******完善中 二、概念性的介绍      Nacos理论知识     ***** 三、官网系列      Spring官网微服务alibaba文档      SpringCloudAlibaba文档      阿里巴巴nacos官方文档      阿里巴巴Sentinal官方文档    阿里巴巴分布式事务Seata官网      阿里巴巴Dubbo使用nacos官方文档      阿里巴巴exception 四、Spring Cloud Alibaba简介 Spring Cloud Alibaba 致力于提供 微服务开发的一站式解决方案 。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 目前 Spring

Docker跨服务器通信Overlay解决方案(上) Consul单实例

感情迁移 提交于 2020-05-01 09:55:25
场景 公司微服务快上线了,微服务都是用Docker容器进行部署的,在同一台主机下,把服务都部署上,注册到Nacos的IP与PORT都是内网的IP与Dockerfile中定义的端口号,看起来好像也没什么问题,通过网关去调用也是可以调通的,请注意这有一个大前提: 必须把所有服务容器部署在同一台主机上时才可以! 当服务实例没有部署在同一主机上,比如网关服务在A服务器,服务a在B服务器上,同样注册到Nacos (或其它注册中心) ,此时上报上来的都是内网的IP,那么当外部有请求进来的时候,网关通过Nacos的服务列表,找到了对应的服务a的内网IP,一调用发现调用不通 ps:内网怎么会通…… 任务 微服务容器可以不在同一台服务器上,互相调用 想法 既然上报的是内网的IP,我直接让他上报宿主机的IP和端口呗 使用Docker的host网络模式 修改部署脚本,通过shell部署容器时,获取宿主机IP与设置的映射端口号 让Docker的网络互通 分析 以下分别按上边的“想法”部分来进行说明下问题 翻遍官方文档与Github,得出的方案又有两个: 固定IP端口,把宿主机IP与端口写死在配置文件中:看起来是解决了,但是问题是无法水平扩展了 —— 勉强能用 固定网卡,防止因多网卡环境上报错误IP端口:没有用的,进入容器中 ifconfig 发现内部网卡只有两个,分别是 eth0 与 lo

在.NET Core中用最原生的方式读取Nacos的配置

◇◆丶佛笑我妖孽 提交于 2020-04-29 13:01:10
背景 之前老黄写过一篇《ASP.NET Core结合Nacos来完成配置管理和服务发现》简单介绍了如何让.NET Core程序接入Nacos,之前的SDK里面更多的是对Nacos的Open API进行了封装以及对服务注册和发现的封装。 配置这一块当时并没有过多的处理,用起来有时感觉不会特别顺手,所以将它和.NET Core的配置结合起来了,让它用起来更简便。 怎么个简便法呢? 可以说,除了多添加一下provider,其他的操作都是和最原始的一模一样,你想用 IConfiguration 就用 IConfiguration ,想用 IOptions 系列就用 IOptions 系列。 更容易做到无缝迁移! 当然,这个SDK出自老黄的手,难免会有一些坑和bug,这个就请各位多多包涵!! 前提条件 启动Nacos Server 最简单的方式,用docker启动一个单机版的。 docker-compose -f example/standalone-mysql-8.yaml up 创建一个.NET Core项目,并安装相应nuget包 这里将用ASP.NET Core Web Api做示例,同时要安装下面的nuget包 dotnet add package nacos-sdk-csharp-unofficial.Extensions.Configuration --version 0.2

SpringCloud-Alibaba-Nacos 服务注册中心&配置中心

走远了吗. 提交于 2020-04-29 12:32:08
Spring Cloud Alibaba 由于 Spring Cloud Netflix 项目进入维护模式(将模块置于维护模式意味着 Spring Cloud 团队将不会再向模块中添加新功能,只会修复 block 级别的 bug 以及安全问题),阿里巴巴团队为我们提供了一套新的微服务开发一站式解决方案 详见官方介绍: https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md Nacos 概述 是什么? 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nocas 就是注册中心与配置中心的组合,可以替代 Eureka + Config + Bus 能干嘛? 替代 Eureka 做服务注册中心;替代 Config 做服务配置中心 下载、安装与运行 下载地址: https://github.com/alibaba/nacos/releases 下载解压后,打开 bin 目录,打开 cmd 窗口输入 startup.cmd 或者双击 startup.cmd 均可启动(Windows版) 浏览器地址栏输入 localhost:8848/nacos 登录,默认用户名密码都是 nacos,主页面如下: Nacos 作为注册中心 引入 Maven 依赖 <!-- nacos-discovery

在.NET Core中用最原生的方式读取Nacos的配置

和自甴很熟 提交于 2020-04-27 10:23:05
背景 之前老黄写过一篇《ASP.NET Core结合Nacos来完成配置管理和服务发现》简单介绍了如何让.NET Core程序接入Nacos,之前的SDK里面更多的是对Nacos的Open API进行了封装以及对服务注册和发现的封装。 配置这一块当时并没有过多的处理,用起来有时感觉不会特别顺手,所以将它和.NET Core的配置结合起来了,让它用起来更简便。 怎么个简便法呢? 可以说,除了多添加一下provider,其他的操作都是和最原始的一模一样,你想用 IConfiguration 就用 IConfiguration ,想用 IOptions 系列就用 IOptions 系列。 更容易做到无缝迁移! 当然,这个SDK出自老黄的手,难免会有一些坑和bug,这个就请各位多多包涵!! 前提条件 启动Nacos Server 最简单的方式,用docker启动一个单机版的。 docker-compose -f example/standalone-mysql-8.yaml up 创建一个.NET Core项目,并安装相应nuget包 这里将用ASP.NET Core Web Api做示例,同时要安装下面的nuget包 dotnet add package nacos-sdk-csharp-unofficial.Extensions.Configuration --version 0.2

在.NET Core中用最原生的方式读取Nacos的配置

戏子无情 提交于 2020-04-27 09:21:28
背景 之前老黄写过一篇《ASP.NET Core结合Nacos来完成配置管理和服务发现》简单介绍了如何让.NET Core程序接入Nacos,之前的SDK里面更多的是对Nacos的Open API进行了封装以及对服务注册和发现的封装。 配置这一块当时并没有过多的处理,用起来有时感觉不会特别顺手,所以将它和.NET Core的配置结合起来了,让它用起来更简便。 怎么个简便法呢? 可以说,除了多添加一下provider,其他的操作都是和最原始的一模一样,你想用 IConfiguration 就用 IConfiguration ,想用 IOptions 系列就用 IOptions 系列。 更容易做到无缝迁移! 当然,这个SDK出自老黄的手,难免会有一些坑和bug,这个就请各位多多包涵!! 前提条件 启动Nacos Server 最简单的方式,用docker启动一个单机版的。 docker-compose -f example/standalone-mysql-8.yaml up 创建一个.NET Core项目,并安装相应nuget包 这里将用ASP.NET Core Web Api做示例,同时要安装下面的nuget包 dotnet add package nacos-sdk-csharp-unofficial.Extensions.Configuration --version 0.2