开发者社区> 全栈程序猿> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SpringCloud微服务实战——搭建企业级开发框架(二):环境准备【下】

简介: 这里简单说明一下在Windows系统下开发SpringCloud项目所需要的的基本环境,这里只说明开发过程中基础必须的软件,其他扩展功能(Docker,k8s,MinIO,XXL-JOB,EKL,Keepalived,Nginx,RabbitMQ,Kafka等)用到的软件会在具体使用时详细说明,本地开发的环境软件以Windows版本的安装配置为例,数据库等中间件以Linux(CentOS7)的安装配置为例,其他系统Mac/Linux可自行配置
+关注继续查看

三、安装Mysql


    这里介绍在CentOS7上通过安装通用预编译包方式安装MySql数据库:


  1. 增加用户名和用户组 :


#groupadd mysql  
#useradd -r -g mysql mysql  ---新建msyql 用户禁止登录shell


  1. 下载、解压MySQL通用编译包:


#wget ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz  
#cd /usr/local/     ---切换到存放源码包所在目录(这里也是安装目录) 
#tar -xvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz  ---在当前目录解压通用编译包
#ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql ---建立软链接mysql 方便操作


  1. 设置权限并初始化MySQL系统授权表:


#cd mysql ---进入软链接目录 
#mkdir /usr/local/mysql/data  ---新建数据目录  
#chmod 770 /usr/local/mysql/data ---更改data目录权限为770 
#chown -R mysql. ---更改所有者,注意是mysql.  
#chgrp -R mysql.  ---更改所属组,注意是mysql.  
#bin/mysqld —initialize -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---以root 初始化操作时要加--user=mysql参数,生成一个随机的密码(保存登录时使用) 
#chown -R root. ---更改所有者,注意是root.  
#chown -R mysql /usr/local/mysql/data ---更改data目录所有者为mysql


  1. 创建配置文件并后台启动MySQL


# mv/etc/my.cnf /etc/my.cnf.bak      ---my.cnf 改名或删除(默认的my.cnf 会影响mysql 启动)  
#cd /usr/local/mysql/support-files  ---进入MySQL 安装目录支持文件目录  
#cp my-default.cnf/etc/my.cnf ---复制模板为新的配置文件,根据需要修改文件中配置选 项如不修改配置MySQL则按默认配置参数运行。 
#/usr/local/mysql/bin/mysqld_safe --user=mysql &    ---后台启动mysql


  1. 配置MySQL自动启动


#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ---复制启动文件  
#chmod 755 /etc/init.d/mysql ---增加执行权限  
#chkconfig -add mysql  ---加入自动启动项  
#chkconfig --level 345 mysql on ---设置MySQL 在345 等级自动启动  ***把服务文件放到/etc/init.d/目录下面相当于改为了rpm包安装的服务使用方式。


  1. 配置MySQL系统环境变量


#vi /etc/profile  ---编辑/etc/profile文件在最后添加如下两行:
PATH=/usr/local/mysql/bin:$PATH
export PATH  ---不加登录mysql 时会报错“-bash: mysql: command not found”  
#source /etc/profile  ---使环境变量及时生效


  1. 启动MySQL服务


#/usr/local/mysql/support-files/mysql.server start ---启动mysql服务 
#/usr/local/mysql/support-files/mysql.server restart ---重启mysql  
#/usr/local/mysql/support-files/mysql.server stop  ---停止mysql服务


也可以用service mysql start或systemctl start mysql这样的rpm服务命令,还可以使用绝对路径/etc/init.d/mysql start来启动mysql,因为上面已经把启动方式改为了rpm服务启动方式。


  1. 访问MySQL数据库


#mysql -u root-p  ---连接mysql,输入初始化时生成的密码  
mysql> alter user 'root^'localhost' identified by '123456';  ---修改root 新密码
mysql> quit; ---退出也可用exit;  
# mysql -u root -p  ---提示输入密码时输入新设置的密码登录  
mysql>use mysql;  ---访问数据库mysql
mysql>GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; ---创建可以远程链接的用户


  1. 创建SSL/RSA文件


#cd /usr/local/mysql/bin ---切换目录  
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  ---创建新的SSL文件


  1. MySQL默认区分大小写,需要修改配置文件使其不区分大小写


在/etc/my.cnf中的[mysqld]后加入下面一行,并重启MySQL


lower_case_table_names=1


11、常见问题及解决方式:


a、登录时报错


#myslq -u root -p 
报错:  ERROR 1045 (28000): 
Access denied for user 'root'local host' (using password: NO)---(不输入密码时)ERROR 1045 (28000): 
Access denied for user ,root,@,localhost, (using password: YES)---(输入密码时)


解决方式:


#/etc/init.d/mysql stop  ---停止mysql 服务  
#mysqld_safe -skip-grant-tables -skip-networking &  ---跳过权限表控制,跳过TCP/IP 协议在本机访问 
#mysql -u root -p mysql  ---提示输入密码时直接到 7 丨(  
mysql>update user set authentication_string=password('123456,) where user='root'; --修改密码,在 MySQL5.7.9中密码字段名是authentication_string 而不是原来的password 了。 
mysql> flush privileges; ---刷新MySQL的系统权限相关表使其生效  
mysql> quit;  ---退出mysql  
#/etc/init.d/mysqld restart  ---重启mysql 服务


b、访问数据库时报错


#myslq -u root -p ---提示输入密码时输入新设置的密码  
mysql>use mysql; 
报错:  ERROR 1820 (HY000): You must SET PASSWORD before executing this statement


解决方式:


mysql>alteruseruser() identifiedby '123456'; ---再重新设置下密码,注意方法与之前5.6版本的“SET  PASSWORD = PASSWORD('new_password'}/MH


c、启动MySQL服务报错


#systemctl start mysql  
报错:  Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).


解决方式:


初始化没有指定路径参数造成的加上参数即可  
#cd /usr/local/mysql  
#bin/mysqld -initialize-user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data


d、使用druid作为数据库连接池时,密码加密(找到maven目录下的druid包)


java -cp druid-1.0.14.jar com.alibaba.druid.filter.config.ConfigTools you_password


四、安装Redis


    下面是在CentOS7中安装Redis的操作步骤,在命令行执行以下命令:


  1. 下载并解压Redis安装包


wget http://download.redis.io/releases/redis-5.0.5.tar.gz
cd /opt/software/
tar zxf redis-5.0.5.tar.gz -C /usr/local/src


  1. 编译并安装Redis


cd /usr/local/src/redis-5.0.5
make && make install
ln -s /usr/local/src/redis-5.0.5 /usr/local/redis


  1. 修改Redis配置文件


vi /usr/local/redis/redis.conf
#修改内容如下:
daemonize yes                           #开启后台运行
timeout 120                                #超时时间
bind 0.0.0.0                                #任何地址IP都可以登录redis
requirepass 123456          #redis密码123456


  1. 启动Redis


cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf


  1. 测试安装配置是否成功


redis-cli -h 127.0.0.1 -p 6379 -a 123456
127.0.0.1:6379> KEYS * (empty list or set)
127.0.0.1:6379> set user ray
OK
127.0.0.1:6379> KEYS *
1) "user"


常见问题:


redis不能远程连接时,可能是防火墙的问题,关闭防火墙或者开放对应的redis端口即可


五、安装Nacos


    Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。


  1. Nacos发布地址:https://github.com/alibaba/nacos/releases,从里面选择需要的版本,这里选择1.4.0版本,下载地址为:https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz

微信图片_20220518135142.png


Nacos发布地址


  1. 下载完成后,上传到测试Linux服务器解压。(如果只想本地windows安装,可以下载nacos-server-1.4.0.zip,解压后使用方法基本一致)


[root@localhost soft_home]# cd nacos
[root@localhost nacos]# ls
nacos-server-1.4.0.tar.gz
[root@localhost nacos]# tar -zxvf nacos-server-1.4.0.tar.gz 
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@localhost nacos]# ls
nacos  nacos-server-1.4.0.tar.gz
[root@localhost nacos]# cd nacos
[root@localhost nacos]# ls
bin  conf  LICENSE  NOTICE  target
[root@localhost nacos]# cd bin
[root@localhost bin]# ls
shutdown.cmd  shutdown.sh  startup.cmd  startup.sh
[root@localhost bin]# pwd
/usr/local/nacos/nacos/bin
[root@localhost bin]#


  1. 修改配置文件的数据库连接,修改为自己实际的数据


#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos


  1. 在数据库中刷入/nacos/conf目录下的nacos-mysql.sql数据库脚本,如果需要其他配置或者了解使用方式可以访问官网,官网地址:https://nacos.io/zh-cn/docs/quick-start.html


  1. 进入到bin目录下直接执行sh startup.sh -m standalone。


[root@localhost bin]# sh startup.sh -m standalone
/usr/java/jdk1.8.0_77/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/usr/java/jdk1.8.0_77/jre/lib/ext:/usr/java/jdk1.8.0_77/lib/ext -Xloggc:/usr/local/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/nacos/plugins/health,/usr/local/nacos/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos/nacos -jar /usr/local/nacos/nacos/target/nacos-server.jar  --spring.config.location=file:/usr/local/nacos/nacos/conf/,classpath:/,classpath:/config/,file:./,file:./config/ --logging.config=/usr/local/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/nacos/logs/start.out


6、服务启动之后,可以访问http://ip:8848/nacos访问管理后台,默认用户名密码:

nacos/nacos


微信图片_20220518135146.png

Nacos登录页


微信图片_20220518135149.png

Nacos首页


六、安装Sentinel


  1. 下载Sentinel发布版本,地址https://github.com/alibaba/Sentinel/releases


  1. 将下载的jar包sentinel-dashboard-1.8.0.jar上传到CentOS7服务器,Sentinel 是一个标准的 Spring Boot 应用,以 Spring Boot 的方式运行 jar 包即可,执行启动命令


nohup java -Dserver.port=8086 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null &


3、在浏览器输入测试的http://ip:8086 即可访问登录界面,默认用户名密码为sentinel/sentinel


微信图片_20220518135152.png

image.png


4、至此,一个简单的Sentinel就部署成功了,其他更详细功能及使用方式请参考:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D


七、安装IntelliJ IDEA


    后台Java代码我们使用目前最流行的IntelliJ IDEA进行开发


  1. 下载需要的安装包,IntelliJ IDEA下载,双击安装,一直点击下一步,尽量修改一下安装目录,不要安装在C盘即可。

微信图片_20220518135155.png
安装第一步

微信图片_20220518135200.png
安装第二步

微信图片_20220518135204.png
安装第三步

微信图片_20220518135206.png
安装第四步


  1. 想办法获取到注册码


  1. 配置默认的Maven和JDK路径

    微信图片_20220518135209.png
    Settings

    微信图片_20220518135212.png
    Maven配置

    IDEA默认会读取到系统配置的JDK环境变量,具体项目可通过File -> Project Structure进行配置。


  1. 通过插件中心,安装Lombok,MybatisX, Save Actions, Eclipse Code Formatter插件,后面会详细介绍几款插件的用法:

    微信图片_20220518135215.png
    插件安装


前端开发所需环境及软件安装步骤:


一、安装Node.js


    如果是刚接触Vue的话,建议学习一下vue-element-admin系列文章,介绍得很详细,虽然ElementUI已经不更新了,但是这位前端大神写的文档比AntDesignVue文档高好几个层级,AntDesignVue适合掌握一定Vue能力的人去使用学习。


  1. Node.js下载地址:https://nodejs.org/en/download/releases/

微信图片_20220518135218.png
Node.js下载页

微信图片_20220518135221.png
Node.js下载页


  1. 双击安装包,一步步点击下一步即可

    微信图片_20220518135224.png
    安装1

    微信图片_20220518135227.png
    安装2

    微信图片_20220518135230.png
    安装3

    微信图片_20220518135233.png
    安装4

    微信图片_20220518135236.png
    安装5

    微信图片_20220518135238.png
    安装6


  1. 检查是否安装成功

运行 -> cmd命令窗口 ,在命令行中输入 node -v ,显示node版本信息表示安装成功

微信图片_20220518135241.png
查看版本


  1. npm切换阿里源


命令行中执行如下命令


npm config set registry https://registry.npm.taobao.org/


  1. 安装cnpm


npm install -g cnpm --registry=https://registry.npm.taobao.org


  1. 安装yarn


npm install -g yarn
yarn config set registry `https://registry.npm.taobao.org -g`


这里之所以cnpm和yarn都安装,是因为其各有优缺点,在使用的时候选择自己习惯的即可。


二、安装VSCode


    Visual Studio Code (简称 VSCode / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。


  1. 下载合适的VSCode安装包,下载地址


微信图片_20220518135245.png
VSCode下载页


  1. 我们这里选择的是.zip解压版,下载解压后就可使用。


  1. 安装插件,打开VSCode,点击左侧下面的扩展按钮,选择需要的插件进行安装
    汉化插件: Chinese (Simplified) Language Pack for Visual Studio Code
    代码检查/格式化工具: ESLint
    Html/js/css进行格式化对齐显示: Beautify
    Vue开发工具 : Vetur


  1. 配置ESLint自动检测格式化前端代码


在我们使用的前端框架中,已经生成eslint 相关的配置文件.eslintignore和.eslintrc.js,当我们编辑代码保存时,ESlint插件会将我们的代码自动按照配置好的格式进行格式化,这里介绍在VSCode中如何配置使用Eslint。


修改VSCode配置,文件->首选项->设置,在设置页,点击右上角第一个按钮,打开setting.json,修改内容为:


{
    //保存自动格式化
    "editor.formatOnSave": true,
    //autoFixedOnSave 设置已废弃,采用如下新的设置
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    },
    //.vue文件template格式化支持,并使用js-beautify-html插件
    "vetur.format.defaultFormatter.html": "js-beautify-html",
    // js-beautify-html格式化配置,属性强制换行
    "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "force-aligned"
        }
    },
    //后面不添加逗号
    "vetur.format.defaultFormatter.js": "vscode-typescript",
    //方法后面加空格
    "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
    "files.autoSave": "off",
    "eslint.format.enable": true,
    //autoFix默认开启,只需输入字符串数组即可
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "vue",
        "html",
        "vue-html"
    ],
    "eslint.run": "onSave"
}


    以上基本开发环境配置操作完成,接下来就可以进行编码开发了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringCloud微服务实战——搭建企业级开发框架(三十二):代码生成器使用配置说明
一、新建数据源配置   因考虑到多数据源问题,代码生成器作为一个通用的模块,后续可能会为其他工程生成代码,所以,这里不直接读取系统工程配置的数据源,而是让用户自己维护。
71 0
SpringCloud微服务实战——搭建企业级开发框架(二十七):集成多数据源+Seata分布式事务+读写分离+分库分表
读写分离:为了确保数据库产品的稳定性,很多数据库拥有双机热备功能。也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器;第二台数据库服务器,主要进行读的操作。   目前有多种方式实现读写分离,一种是Mycat这种数据库中间件,需要单独部署服务,通过配置来实现读写分离,不侵入到业务代码中;还有一种是dynamic-datasource/shardingsphere-jdbc这种,需要在业务代码引入jar包进行开发。
180 0
SpringCloud微服务实战——搭建企业级开发框架(三十七):微服务日志系统设计与实现【上】
针对业务开发人员通常面对的业务需求,我们将日志分为操作(请求)日志和系统运行日志,操作(请求)日志可以让管理员或者运营人员方便简单的在系统界面中查询追踪用户具体做了哪些操作,便于分析统计用户行为;系统运行日志又分为不同的级别(Log4j2): OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL,这些日志级别由开发人员在代码编写时确定,并编写在代码中,系统运行时记录,方便系统开发人员分析定位解决问题,查找系统性能瓶颈。
131 0
SpringCloud微服务实战——搭建企业级开发框架(二十六):自定义扩展OAuth2实现短信验证码登录
我们系统集成了短信通知服务,这里我们进行OAuth2的扩展,使系统支持短信验证码登录。 1、在gitegg-oauth中新增SmsCaptchaTokenGranter 自定义短信验证码令牌授权处理类 2、自定义GitEggTokenGranter,支持多种token模式
90 0
SpringCloud微服务实战——搭建企业级开发框架(九):使用Nacos发现、配置和管理微服务
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos部署请参考Nacos安装指南:https://www.jianshu.com/p/2e065c15d730
72 0
SpringCloud微服务实战——搭建企业级开发框架(十三):OpenFeign+Ribbon实现高可用重试机制
Spring Cloud OpenFeign 默认是使用Ribbon实现负载均衡和重试机制的,虽然Feign有自己的重试机制,但该功能在Spring Cloud OpenFeign基本用不上,除非有特定的业务需求,则可以实现自己的Retryer,然后在全局注入或者针对特定的客户端使用特定的Retryer。   在SpringCloud体系项目中,引入的重试机制保证了高可用的同时,也会带来一些其它的问题,如幂等操作或一些没必要的重试,下面我们实际操作来测试Spring Cloud架构中的重试机制。
122 0
SpringCloud微服务实战——搭建企业级开发框架(十二):OpenFeign+Ribbon实现负载均衡
Ribbon是Netflix下的负载均衡项目,它主要实现中间层应用程序的负载均衡。为Ribbon配置服务提供者地址列表后,Ribbon就会基于某种负载均衡算法,自动帮助服务调用者去请求。Ribbon默认提供的负载均衡算法有多种,例如轮询、随即、加权轮训等,也可以为Ribbon实现自定义的负载均衡算法。 Ribbon有以下特性:
98 0
SpringCloud微服务实战——搭建企业级开发框架(三十八):搭建ELK日志采集与分析系统
一套好的日志分析系统可以详细记录系统的运行情况,方便我们定位分析系统性能瓶颈、查找定位系统问题。上一篇说明了日志的多种业务场景以及日志记录的实现方式,那么日志记录下来,相关人员就需要对日志数据进行处理与分析,基于E(ElasticSearch)L(Logstash)K(Kibana)组合的日志分析系统可以说是目前各家公司普遍的首选方案。 • Elasticsearch: 分布式、RESTful 风格的搜索和数据分析引擎,可快速存储、搜索、分析海量的数据。在ELK中用于存储所有日志数据。
166 0
SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署【下】
• sonarqube默认用户名密码: admin/admin • 卸载命令:docker-compose -f jenkins-compose.yml down -v 六、Jenkins自动打包部署配置   项目部署有多种方式,从最原始的可运行jar包直接部署到JDK环境下运行,到将可运行的jar包放到docker容器中运行,再到现在比较流行的把可运行的jar包和docker放到k8s的pod环境中运行。每一种新的部署方式都是对原有部署方式的改进和优化,这里不着重介绍每种方式的优缺点,只简单说明一下使用Kubernetes 的原因:Kubernetes 主要提供弹性伸缩、服务发现、自我修复,
110 0
SpringCloud微服务实战——搭建企业级开发框架(三):创建Maven工程
在新建工程前,先了解一下什么是敏捷开发“松结对编程”及“L型代码结构”这里有详细的介绍和说明 : 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)     使用Maven创建项目之前,我们要对工程有一个大概的规划,为了保持类库统一管理,引入的jar包版本不冲突,我们需要用到Maven的BOM功能以及Spring IO platform推出的BOM功能:
119 0
+关注
全栈程序猿
高级系统架构师、全栈程序员
63
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载