背景

现在的微服务框架一般分dubbo和springcloud两套服务治理体系,dubbo是基于zookeeper为注册中心,springcloud是基于eureka作为注册中心。

但是现在eureka作为注册中心停止更新了,只有维护状态。并且netfix体系的feign和hystrix也是停止更新了,官方都开始推荐其他的代替方案。eureka这套体系也挺好用的,比较兼顾SpringMvc开发习惯,也辉煌了4个年头,尽力了。

本章节会讲述我在部署Nacos遇到的坑点,后续把SpringCloudAlibaba体系不为人知的坑给告诉大家。

最近在做商城项目,前后端都是自己开发,所以用一套最新的后端技术栈。

springcloud官方文档也把springCloud alibaba放在了文档,而且alibaba放弃zookeeper作为注册中心,并且把dubbo捡起来作为服务调用,所以后续开发新项目打算使用新的微服务治理体系及其周边配套。

指标 服务治理与发现 RPC远程调用方式 服务配置 定时任务调度 消息通信 前端 网关
技术组件 Nacos Dubbo的rpc Nacos Xschedule RocketMq VUE、UNIAPP dubbo服务发现+url中转方式

目的

  1. 基于SpringCloudDubbo体系进行开发,踩坑,给大家减少坑。后续每章节都讲我遇到上述技术栈的坑点。
  2. 按照官方文档实行时,我发现问题后,告诉大家。
  3. 虽然都是跟着样例做,但是样例也不一定描述完整,阿里巴巴的组件都是一个通病,文档描述不全。如:seata。虽然Nacos不是阿里的。
  4. 本节先讲述部署Nacos,解决nacos启动不起来,或者nacos启动报错的问题,nacos启动时jdbc错误。

好久没写过文章了。带着大家一起开发新玩具,让大家知道避开我踩过的坑。持续更新。把官方样例中没有写清楚的点告诉大家。

关注微信公众号【地藏思维】即可获得最新的文章、互联网资讯

掘金:地藏Kelvin

Nacos部署时的踩坑点

先看看官方文档介绍

一般会按照文档来,执行命令。如果有问题请看后面。

https://nacos.io/zh-cn/docs/quick-start.html

  1. 第一步下载安装JDK、MAVEN没有问题
  2. 第二步无须下载源码来编译,只需要下载稳定版的nacos-server-$version.zip 文件就行了。
  3. 若在此时,执行第三步骤就糟了。并不能直接运行下载好的文件,需要进行配置,若不配置对,nacos就无法启动,或者nacos启动报错jdbc,或者dubbo服务注册nacos报read time out错误。

Nacos启动错误jdbc connect error解决办法——缺少配置文件

需要的步骤

  1. 进入nacos\conf\目录有几个关键文件

    nacos-mysql、application.properties、cluster.conf.example
  2. 需要先打开application.properties

    把原本注释掉的下述代码给打开
### Count of DB:
db.num=1 ### Connect URL of DB:
db.url.0=jdbc:mysql://ip:端口/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=***
db.password=***

并且创建一个数据库,在上述代码替换数据库端口、ip、用户名密码

3. 复制cluster.conf.example为cluster.conf

在这个文件里面,把ip端口全删掉,剩下localhost:8848就可以了。

这里一定要填,不然dubbo服务注册Nacos时,nacos会报Read Time Out。

4. 打开数据库,执行nacos\conf\目录下的nacos-mysql.sql里面的内容,若是oracle则使用schema.sql。

5. 这个时候,再在nacos\bin\目录下,双击startup.cmd即可运行

6. 启动登录页面localhost:8848/nacos ,然后用户名密码都是填nacos

到此则能完成Nacos的启动。

结语

后续将会揭晓你们在使用SpringCloudAlibaba时,将会遇到的坑点,因为即使看文档跟着文档你也弄不出一样的效果。

每次的文章都会简短,精简说明坑点和如何解决。

注:赠送入门官方文档

文档: https://spring.io/projects/spring-cloud

源码与demo: https://gitee.com/mirrors/Spring-Cloud-Alibaba

Nacos简介: https://nacos.io/zh-cn/docs/what-is-nacos.html


欢迎关注公众号,文章更快一步

我的公众号 :地藏思维

掘金:地藏Kelvin

简书:地藏Kelvin

我的Gitee: 地藏Kelvin https://gitee.com/kelvin-cai

《SpringCloudDubbo开发日记》(一)Nacos连官方文档都没写好的更多相关文章

  1. App开发架构指南(谷歌官方文档译文)

    这篇文章面向的是已经掌握app开发基本知识,想知道如何开发健壮app的读者. 注:本指南假设读者对 Android Framework 已经很熟悉.如果你还是app开发的新手,请查看 Getting ...

  2. 终端开发补充 : 读 curses模块官方文档...

    curses是一个提供终端屏幕打印和键盘处理的库, 我个人的理解就是终端里的gui(当然它是基于文本的)... 写2048的时候用到了这个库, 所以现在过来好好研究一下这个库... 下面是文档内容 : ...

  3. JPush 初始化失败,直接按照官方文档的格式写的,portal上的包名肯定不会错,mainfest里面直接指定${applicationId}

    错误日志: 11-27 09:59:19.670 26124-26124/? D/dalvikvm: Late-enabling CheckJNI 11-27 09:59:20.008 26124-2 ...

  4. iOS开发官方文档汇总

    程序员的学习过程是无止境的,程序员学习的途径是多样的.可以从视频教程中领悟,也可以从他人的代码中 理解.但当我们专注于某一个平台在开发的时候,对于某个API使用或者功能实现有疑问,通常简单的测试可以让 ...

  5. citus 多租户应用开发(来自官方文档)

      citus 官方文档很不错,资料很全,同时包含一个多租户应用的文档,所以运行下,方便学习 环境准备 使用docker-compose 运行,同时集成了graphql 引擎,很方便 docker-c ...

  6. 【pytest官方文档】解读- 开发可pip安装的第三方插件

    在上一篇的 hooks 函数分享中,开发了一个本地插件示例,其实已经算是在编写插件了.今天继续跟着官方文档学习更多知识点. 一个插件包含一个或多个钩子函数,pytest 正是通过调用各种钩子组成的插件 ...

  7. Kotlin开发语言文档(官方文档)-- 目录

    开始阅读Kotlin官方文档.先上文档目录.有些内容还未阅读,有些目录标目翻译还需琢磨琢磨.后续再将具体内容的链接逐步加上. 文档链接:https://kotlinlang.org/docs/kotl ...

  8. Protocol Buffers官方文档(开发指南)

    本文是对官方文档的翻译,然后截取了一篇非常优秀的文章片段来帮助理解,本人英文水平有限,基本都是直译,如果有不理解的地方请参考英文官方文档,参考的文章链接在文章末尾 protocol buffers简介 ...

  9. 2DToolkit官方文档中文版打地鼠教程(二):设置摄像机

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

随机推荐

  1. asp.net Core3.1自定义权限体系-菜单和操作按钮权限

    我们在做项目项目,经常会碰到权限体系,权限体系属于系统架构的一个最底层的功能,也是非常重要的功能,几乎在每个项目都会用到.那么我们该如何设计一个比较合理的且扩展性较强的权限体系呢? 经过多天的摸索,参 ...

  2. 10分钟搞定 Java 并发队列好吗?好的

    | 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it ...

  3. Linux安装Rabbitmq3.8.5

    安装环境: 操作系统为:centOS-7 erlang版本为22.3,软件包:otp_src_22.3.tar.gz rabbitMQ版本为3.8.5,软件包:rabbitmq-server-gene ...

  4. 序列号,IMEI,IMSI,ICCID的含义

    什么是序列号? 序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机.你可以简单的将这一串数字分割为:aabccdddeef 的形式.拿iPhone 4为例 aa = 工 ...

  5. beautifulsoup教程

    beautifulsoup教程 BeautifulSoup4是爬虫必学的技能.BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码 ...

  6. Vue官方文档Vue.extend、Vue.component、createElement、$attrs/$listeners、插槽的深入理解

    一.Vue.extend({}). 看官网文档介绍,Vue.extend({})返回一个Vue的子类,那么这个Vue子类是啥玩意儿呢?我直观感觉它就是创建出一个组件而已啊,那么它又和Vue.compo ...

  7. Ajax请求携带Cookie

    目录 xhr ajax cookie跨域处理 客户端 服务端 服务端设置跨域的几种方式 方式一 重写addCorsMappings方法 方式二 对单个接口处理 方式三 @CrossOrigin注解 方 ...

  8. Python中的type(),isinstance,()dir(),的区别

    1.type() type(),获取一个变量的类型,返回值为:<class '类名'>,属于class类型2.isinstance() isinstance(),判断一个对象是否属于某种数 ...

  9. (超详细)动手编写 — 栈、队列 ( Java实现 )

    目录 前言 栈 概念 栈的设计 编码实现 小结 队列 概念 队列的设计 编码实现 双端队列 概念 设计 编码 循环队列 循环队列 循环双端队列 声明 前言 栈 概念 什么是栈? **栈 **:是一种特 ...

  10. linux下开启防火墙,允许通过的端口

    1.查看防火墙状态 systemctl status firewalld 2.如果不是显示active状态,需要打开防火墙 systemctl start firewalld 3.# 查看所有已开放的 ...