乐优商城开始前笔记

编程入门 行业动态 更新时间:2024-10-15 14:17:18

乐优商城开始前<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记"/>

乐优商城开始前笔记



发送心跳和过期时间

拉取服务的间隔时间:

失效剔除和自我保护

因为保护机制是宁可放过一千也不错杀一个,所以有的服务已经关了他也会继续显示没关,所以给开发带来不方便就要关闭这个保护机制

 day2总结
1:远程调用技术:rpc http

rpc协议:自定义数据格式,限定技术,传输速度快,效率高  dubbo

http协议:统一的是数据格式,不限定技术 rest接口    springcloud就是基于http协议
2:什么是springcloud

微服务架构的解决方案,是很多组件的集合
eureka:注册中心,服务的注册与发现
zuul:网关组件,路由请求,过滤器(这里面包含ribbon   hystrix,相当于jdk包含jre  jvm一样,有一个jdk就不用在弄jre  jvm,因为它包含了另外两个)
ribbon:负载均衡组件
hystrix:熔断组件(个人理解为相当于家里用电的闸刀,当电用的功率太大就为了保护电路就跳闸了,hystrix就是当负载太大就关掉服务)
3:eureka

 注册中心:
服务端的eureka步骤:
(1:应用启动类   2:配置spring.application.name" "(里面的名称作为以后的的名字或者id)3:在引导类上加@EnableEurekaServer)
客户端(不管消费者还是服务者都是要用Client):

(1:引入启动器,   2:配置spring.application.name   eureka.client.service-url.defaultZone=http://localhos:10086/eureka    3:@EnableEurekaClient)

负载均衡Ribbon

 

如上图代码我们只能调用一个客户,如果有多个就不知道怎么调用那个了,Ribbon会提供选择调用哪个
步骤:1:引入启动器  2:覆盖默认配置  3:在引导类引用启动器

如上图,淘汰原本的instance,使用  spring.application.name" "的名字,如果两个服务器的名字一样,那么访问的时候默认是轮询的方式,比如有两个服务器8801,8802,然spring.application.name" "名字相同,这时候就先访问8801再8802再8801再8802......。这样的
的原理是  次数%2     如果是1那么访问那个端口,如果是0那么访问那个端口,在引导类中添加启动器的时候是加在注入RestTemplate的注解的下边,如下图@LoadBalanced就是Ribbon的启动器

 hystrix:英文意思是豪猪,全身是刺看起来不好惹,是一个保护机制。是一个延迟和容错库,用于隔离远程服务,第三方库,防止出现级联失败
1:雪崩问题
    

    ~线程隔离~  

 1:添加依赖
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
2:添加启动类
@EnableCircuitBreaker
实际操作:例如我的例子创建一个熔断方法querUserByIdFallvack,然后在需要加熔断方法的方法上加一个@HystrixCommand注解,如果注解有指定

如图所示,那么就熔断的时候去指定的熔断方法里,如果没有指定 

 

那么就去全局默认的指定的熔断方法:@DefaultProperties(defaultFallback = "querUserMath")
 

  

@SpringCloudApplication//相当与是@SpringBootApplication+@EnableDiscoveryClient+@EnableCircuitBreaker

当熔断完以后需要手动去处理链接线路,这时候Hystrix可以实行相当于一个闸,当太大时就断开不允许任何的访问,过一段时间就开始放进去少量的访问,如果可以正常处理就合上闸恢复正常,如果还是不能访问就继续断闸。如下图

 

 

hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 6000
这是调整hystrix 的超时时间,默认的是1s,如果觉得时间太短可以调,实现就是如果连接超过设置的时间了还没有响应,那么就认为熔断了
service-provider:  #服务提供方的名称ribbon:NFLoadBalancerRuleClassName: comflix.loadbalancer.RandonRule
这段代码是如果eureka的名字相同的话,那么就可以调整是轮询还是随机
feigh:
feign包含RestTemplate,所以以后就不用在拼路径拼参数,具体怎么拼如图

有了feign之后应该去掉的是如下图:

 是创建一个接口添加一个@@FeignClient("service-provider")  service-provider是eureka的名称,在接口中写一写方法
虽然feign继承了hystrix,但是也要手动去打开熔断的如下图所示

 feihn总结

 zuul网关:
是相当于守门员,验证等权限等,具体如下图所示:


path是访问的前缀是、service-provider就访问下边的指定的地址

 

 如下图访问就是相当于访问的8082的地址

 

 更先进的配置整合eureka
加上eureka配置然后
如下图配置:

 但是在网站上游览的时候要把routes下边的路由名称加上,如上上一个图地址,如果routes下边的路由名称为user,那么地址就为localhost:10010/user/user/1
 

 

 zuul过滤器:

 

 过滤器:

 

  SpringCloud总结

ES6:
在js中使用var定义一个变量的话会有一个缺陷,就是比如如下代码

<script>for (var i = 0;i<5;i++){console.log(i);}console.log("我在外边"+i);
</script>

本来for循环的代码只能在for里面用,但是用var变量之后for外边有输出一个5,所以for里面的i也能被外边使用,这是一个缺陷结果如下图

 现在可以将var改为let代码如下,let可以生成一个局部变量

<script>for (let i = 0;i<5;i++){console.log(i);}console.log("我在外边"+i);
</script>

运行结果如下

 es6字符串的扩展
includes:判断是包含这个字符,比如代码
 

const a = "haha"   //在f12中添加a,值为hahaa.includes("hc")   //返回false,因为里面没有hca.includes("ha")  //返回true


startsWith:判断是否是以这个开头的
 

const a = "haha"    //创建a的值为haha
a.startsWith("hah")   // 判断是否是以开头的,结果为true
a.startsWith("a")   //结果为false


``:拼接字符串,传统的是"aa"+"bb",而且换行还得加换行符,现在就是`aa
                                                                                                                    bb`
在符号里面进行操作;

解构表达式

const arr = [10,20,30]
undefined  //运行结果
const [x,y,z]=arr   因为arr在上边设置为数组,所以这里面也得用中括号
undefined  //运行结果       
x  
10  //运行结果
y
20  //运行结果
z
30   //运行结果
const person = {name:"hmh",age:21}   这是一个对象
undefined   //运行结果
const {aa,bb} = person  因为创建的是对象,所以这里面也是{}
undefined   //运行结果  
aa
undefined  //运行结果  没有发现是因为对象的话必须使用创建对象时的字段名字
bb
undefined   //运行结果
const {name,age} = person   
undefined  //运行结果
name
"hmh"  //运行结果
age
21   //运行结果
const {name:aa,age:bb} = person    这是别名,将name的值给aa  age的值给bb
undefined  //运行结果
aa
"hmh"  //运行结果
bb
21  //运行结果

解构总结:定义的时候用的什么括号符号,解构的时候就要用哪个括号符号



函数的优化:

function fun(a,b = 1){console.log(a/b);}
fun(10,2);

 该代码就是函数fun传值将b的默认值为1,如果下边fun只有一个fun(10);那么就会输出10,因为fun没有设置b的值就会用默认值1,a/b=10;如果是fun(10,2);那么最后是5,因为fun中有b的值就不用b=1的默认值了

 

const person = {name: "zhangshan",eat: function (food) {console.log(this.name + "吃了" + food);},eat1: food => console.log(this.name + "吃了" + food),eat2(food) {console.log(this.name + "吃了" + food);}}person.eat("面条");person.eat1("油条");person.eat2("辣条");

如上图所示,创建一个对象person,有三个方法eat1,eat2,eat3.只是构造方式不一样,但是eat2返回没有name;如下图
|

 没有说谁吃了油条,想要用zhangshan的名字在eat2就不能用this.name,因为他是箭头函数,this.name在eat2中指的是person外边的,应该用person.name就行了,最好的是第三种


构造方法结合解构表达式

const person = {name: "zhangshan",}const dd = ({name})=>console.log(person.name)dd(person)

需要person对象的name为方法的参数,就用解构,dd =({name}),因为解构的是对象所以name用{}括起来;
es6总结



  
 

vue.js入门
MVVM:如下图:


 methods:里面就是添加的方法
@contextMenu.prevent:是右键的方法,但是在一个网页右击鼠标会有  
@keyup.数字=“”     13就是空格,   这是键盘事件,比如想提交一个空格就行了就是键盘事件

 v-bind:一般花括号都是在标签中间<h1>{{nam}}</h1>,但是如果想<h1 value="{{nam}}"></h1>这样的话就不行了,这时候可以<h1 v-bind:value="{{nam}}"></h1>,添加 v-bind就是个活性的,能过实时显示状态变化什么的。主要是通过判断class和style,比如购物车库存为0,那么淘宝就会出现一个颜色浅的加入购物车按钮提示没有了,如果有库存就不会是活性的。

 watch监听:例子:在搜索页面搜索java,还没有输完输入个ja就下边出了一堆了已经,这就是监听,也就是相当于监控。如下图

 val1是新的模型,val2是输入前的新值
组件
如下图是一个父组件(全局的)

如下图是一个子组件

这里面想要调用子组件的标签就可以在如下图
 
这里面的counter是在子组件设置的,而且div中有几个counter机油几个线程,而且不联系是新的线程,如下图

 (下边是局部的)

 如下,因为没有和vue联系,

 所以每次用就要这样

 
加个components,其中h是局部子组件的名字,hel1是他的别名,用的时候就

 组件通信: 

 父组件给子组件传值,记住两句话:1:父组件使用子组件时,自定义属性(属性名任意<counter :title="num"></counter>中的title,但是他是活性的就要加:,属性值为要传递的数据<counter :title="num"></counter>中的num)   2:子组件通过props接受父组件数据props是个数组是props: ["title"],,通过自定义属性的属性名,如下图



 

子向父传递
在父组件定义一个方法

 在div中自定义@incre1然后后边的等号是上边的定义的方法incre,然后在子组件定义的@click的方法中写一个固定格式this.$emit("方法")

 定义多组件
组件之间的跳转:例如,登录注册组件点击登录跳转到输入密码账号,点击注册跳转到输入账号输入密码确认密码
&emsp;是一个汉字的大小的空格    &ensp;是半个汉字的空格
当使用一个标签的时候他有大写字母的时候例如<registerFrom></registerFrom>这样是不对的,因为标签不区分大小写的所以可以这样<register-from></register-from>
vue-router:想要玩先要安装, npm install vue-router --save<script src="vue-router"></script>必须在vue那个引入链接下边,而且后边的路由也要在Vue的父组件上边,
<router-link to="/login">登录</router-link>:相当于超链接点击跳转到路由中的/login
<router-view></router-view>显示在什么地方

 

 vue总结

 注意:npm install vue@2.5.16 --save其中@2.5.16就是项目需要什么版本的版本号就下载这个的版本号
到目前为止后台管理的前端i经弄完
axios入门:

 案例中使用的是$http原因就是封装了axios

 

更多推荐

乐优商城开始前笔记

本文发布于:2024-02-26 09:05:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701967.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记   商城

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!