springcloud从基础到入门到精通(nacos集群和持久化配置)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springcloud从基础到入门到精通(nacos集群和持久化配置)相关的知识,希望对你有一定的参考价值。

参考技术A

1.linux下安装nacos集群

需要准备的安装包: jdk、mysqlnginx、nacos

百度云盘下载地址

链接:https://pan.baidu.com/s/1ewVSzwqfP8IErI9fqJC_QQ

提取码:tgui

2.安装步骤

2.1 配置jdk环境变量

第一步:解压jdk包

第二步:移动解压后的目录到/usr/local

第三步:配置环境jdk环境

source命令通常用于重新执行刚修改的初始化文件

测试输入java -version 可看到对应的版本号

2.2 linux安装5.7mysql 建议安装在/usr/local/mysql

默认安装目录: /usr/local/mysql

数据文件目录: /usr/local/mysql/data

MySQL占用端口:3306

默认socket文件存放路径:/tmp/mysql.sock 用于客户端与服务端通信得套接字文件

第一步:上传软件包到linux操作系统

第二步:对mysql压缩包进行解压操作

第三步:移动mysql文件夹到/usr/local目录下并更名为mysql

第四步:创建一个mysql用户并更改/usr/local/mysql目录的权限(用户和组)

#没有指定用户组 会自定创建同名的用户组 id mysql可以查看到

#更改权限 chown -R mysql.mysql /usr/local/mysql

#查看ll /usr/local/mysql

查看/etc/my.cnf是否存在,不存在则创建加入以下配置

第五步:初始化数据库 需要进入/usr/local/mysql/bin

第七步:移动support-files目录下的mysql.server脚本到/etc/init.d目录一份 可直接使用service命令

赋予执行权限:chmod +x /etc/init.d/mysql

第八步:启动mysql脚本

第九步:设置密码并测试mysql数据库

3.linux安装nginx

第一步:解压

第二步: 移动解压后的文件到指定/usr/local

第三步:执行编译文件 进入nginx目录

第四步:安装

第五步:启动 进入 cd /usr/local/nginx/sbin目录下启动

4.nacos集群配置

4.1解压nacos

4.2移动文件到usr/local文件夹下

4.3持久化数据库创建

进入nacos的conf目录找到nacos-mysql.sql文件,复制所有内容在mysql执行

4.4在conf的application.properties文件中添加如下配置

4.5修改conf下的cluster.conf文件

下面的ip地址通过hostname -i查询获得,如上

4.6进入bin目录修改startup.sh文件

原文件

修改后的文件

4.7启动nacos集群,进入/usr/local/nacos/bin目录下

5.配置nginx文件

5.1找到conf下的nginx.conf文件

原文件

修改后的文件

5.2启动nginx,进入nginx/sbin目录执行下面命令

最后访问测试:192.168.137.130:1111/nacos/#/login成功进入nacos界面

发布一条配置信息

数据库查看,出现该条信息则表示成功

6.微服务测试,修改之前就创建的cloudalibaba-provider-payment9002的yml配置文件后,启动

查看到如下,表示注册成功

Python基础知识详解 从入门到精通类与对象


本篇主要是介绍python,内容可先看目录
其他基础知识详解,欢迎查看本人的其他文章
Python基础知识详解 从入门到精通(一)介绍
Python基础知识详解 从入门到精通(二)基础
Python基础知识详解 从入门到精通(三)语法与函数
Python基础知识详解 从入门到精通(四)列表、元组、字典、集合
Python基础知识详解 从入门到精通(五)模块管理
Python基础知识详解 从入门到精通(六)文件操作
PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我整理啦从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF等】需要的可以进Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步

定义类
注意,若类的方法与属性名一样。则属性会覆盖方法

一个类可以产生无数的对象,当对象的方法被调用时候,对象会将自身作为第一个参数作为self参数传给方法,这样子就可以分辨是哪一个变量在调用这个方法,所以定义方法时候第一个参数必定是self
关于self 不理解也没关系,每一个函数都放在第一个函数即可

__ init __(self) 是魔法方法用于传参数,使用方法如下
在类实例化开始时会自动被调用,可以用于一些开始时候需要做的事
用了__init__可以直接在生成对象时候传参数
但是注意__init__不能返回数据,它默认放回None

关于魔法方法后期文章解释

def aa():
print(‘dd‘)
class aa :
“这是类的说明” # 用类名.__doc__ 可以输出
g = 3
def jj(self):
aa() #可以调用全局函数
print(‘jjjjj’)

class bb:

#属性,,,,,,就是变量的值,,,比如鱼是红色的,多大,这些是属性
a= 1
b = ‘sssss’ #这是类属性,所有实例共有的,只要一个实例修改了它,全部实例都改变
#方法 就是类内的函数
def sename(self,name):
self.name = nema #如self.xxxx是实例属性,每个实例互不影响
def pr(self)
print(self.name)
def hhh(self):
pass
class cc:
def __init__(self,name)
self.name = name
self.pr #可以调用下面的函数
def pr(self)
print (self.name)

使用
实例名.__dict__可以查看实例的属性(字典类型)
类名.__dict__可以查看类的属性(字典类型)

以上定义中aa为类,a为实例对象
还可以直接使用类对象 如aa.g 这是类对象

为了区分函数与类
约定类大写开头,函数小写开头

如实例对象

a = aa()
a.jj()
#结果为 jjjjj
a = bb()
a.setname(‘gfx’)
a.pr()
#结果为gfx
#如cc中使用了__init__可以直接在生成对象时候传参数
a = cc(‘gfx’)
a. pr()
#结果为gfx

#实例对象可以直接加属性
#如a.hh = 8 相当于加一个hh属性
#实例对象使用时可以修改属性的值
#a.g +=3
#则a.g 结果为6


使用类对象

a = aa()
b = aa()
c = aa()
#a,b,c是不同的实例对象
#如a.g 结果为3
b.g 结果为3
a.g +=3
#则a.g 结果为6
b.g 结果为3
#但若使用类对象,会直接改变类的属性
aa.g = 8
#则a.g 结果为8
b.g 结果为8

访问属性

a.g 可以访问
也可以
用getattr(实例对象名,‘属性名’,‘若无此属性返回内容’)

但是方法只有实例对象才能调用,这个也是python的绑定概念

定义了实例对象,再删除该类,这个实例对象也是可以用的,

私有定义
由双下划线开头的为私有定义 __ a
不可被外部调用,只能内部


class dd:
__a = 4
def get(self)
return __a
#使用
g =dd
g.__a #不合法

外部使用私有变量
假如要在外部用a,需要借助方法get
g.get() 即可

实际上python的私有是一种 ‘假私有’(名字重整)
这是改变了变量名字 改为 __类名__变量名
所以g.__dd__a也可以在外部调用

继承操作:
class 类1名(类2名): 继承操作:类1继承类2的方法和属性

不能继承私有方法和属性
继承是有顺序的,从左往右,若有同名方法或属性,先继承前面的,后面的被屏蔽

如果子类中还定义与父类同名的方法或属性,则自动覆盖父类的对应的方法或属性

注意子类中再用__init__可能会覆盖父类中的需要的变量
解决方法有两个
一. 调用未绑定的父类方法
如 定义子类时 父类名.__ init __(self)即可
二. 使用super函数
用法在子类中 super().父类中需要的方法名()

如 super().__ init __() 可以自动找父类,以后也不用修改

可以多重继承,class 类1名(父类1名,父类3名,父类四名……):
如class ff (aa,cc,dd):

组合
即多个对象的组合、
就是把类的实例化放到另一个组合里

class a :
def __init__(self,x)
self.num = x
class c :
def __init__(self,y)
self.num = y
class d :
def __init__(self,x,y)
self.a = a(x)
self.c = c(y)
def pr(self)
print(‘a有%d个,c有%d个‘%(self.a.num , self.c.num)
结果为
g = d (3,4)
A有3个,c有4个

相关的BIF(内置函数)
issubclass(class,classinfo)
若第一个参数class 是第二个参数的子类或者本身返回true 否则返回false
第二个参数可以是一个元组,里面有各个类,只有其中一个是第一个的父类即符合条件
如issubclass(class,object) 返回true,,,,object是所有类的一个基类,所有类默认继承object

isinstance(实例对象名,classinfo)
检擦实例对象是否属于第二个参数类,是则返回true 否则则反之
第二个参数可以是一个元组,里面有各个类,只有其中一个即可
如果第一个参数不是传入对象,一直返回false

hasattr(对象名,name)
若对象里面有第二个参数这个属性,有则true,name是一个字符串有‘‘ 或“”

getattr(对象名,name [, default])
返回对象指定属性的值,若指定属性不存在将[, default的值打印出来,若不输入[, default]则返回异常

s etattr(对象名,name ,value)
设定对象中指定属性的值,若属性不存在则新建一个属性并赋值

delattr(对象名,name)
删除对象的指定属性,若属性不存在则异常

Property (fget = None, fset =None ,fdel = None,doc = None)
去设置一个存在的属性
Fget,是获取属性的方法
Fset设置属性的方法
Fdel删除属性的方法
但是具体方法要自己传入
使用

class q:
def __init__(self,size=10):
self.size = size
def get(self):
return Self.size
def set(self,value):
self.size = value
def dellll ():
del self.size
x = property (get, set,dellll)

设置size
q.x = 78
使用size
q.x
删除size
del q.x

说到这里。

很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我整理啦从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF等】需要的可以进Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以上是关于springcloud从基础到入门到精通(nacos集群和持久化配置)的主要内容,如果未能解决你的问题,请参考以下文章

Python基础知识详解 从入门到精通类与对象

Spring Cloud Alibaba从入门到精通!

Python 从入门到精通推荐看哪些书籍呢?

HTML5从入门到精通的内容介绍

SpringCloud Nacos 注册中心 -- Nacos快速入门Nacos服务分级存储模型(集群)集群负载均衡策略 NacosRule

R语言绘图(ggplot2、ggpurb)从入门到精通06--柱状图美化之宽度调节