
Java 1.1tomcat 1.2JVM 1.3Mysql 2.1SpringCloud 2.2SpringBoot 2.3Dubbo 4.1Spring 4.2SpringMVC 4.3MyBatis 5.1 5.2 5.3 ๅग़ ᩒრ 1.1tomcat 1tomcat 1. JVM -Xms<size> JVM - Xmx<size> JVM 80% catalina.bat JAVA_OPTS='-Xms256m- Xmx512m' 256MB512MB 2.DNS webIP IPDNS IP DNS DNS server.xml enableLookups Tomcat4 <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"port="80" minProcessors="5"maxProcessors="75"enableLookups="false"redire ctPort="8443" acceptCount="100"debug="0"connectionTimeout="20000" useURIValidationHack="false"disableUploadTimeout="true"/> Tomcat5 <Connectorport="80"maxThreads="150"minSpareThreads="25" maxSpareThreads="75"enableLookups="false"redirectPort="8443" acceptCount="100"debug="0"connectionTimeout="20000" disableUploadTimeout="true"/> 3. Con nector Tomcat Java CPU Tomcat4 minProcessors maxProcessors minProcessors 51 5 maxProcessors maxProcessors web server Windows2000Linux1000 Tomcat5 maxThreads Tomcat Tomcat acceptCount connnection Timeout 0 30000 minSpareThreadsTomcat maxSpareThreads Tomcat socket web 2comcat tomcat server.xml <Connector/> minProcessors 10 maxProcessors 75 acceptCount maxProcessors 100 enableLookups truefalse false connectionTimeout 0 30000 maxProcessorsacceptCount web server Windows2000Linux1000tomcat5 <Connectorport="8080" maxThreads="150"minSpareThreads="25"maxSpareThreads="75" enableLookups="false"redirectPort="8443"acceptCount="100" debug="0"connectionTimeout="20000" disableUploadTimeout="true"/> 3tomcat java.lang.OutOfMemoryError:Java heap space JAVA 1 Heap size TOMCAT_HOME/bin/catalina.sh setJAVA_OPTS=-Xms32m-Xmx512m 2 java-Xms32m-Xmx800m className JAVAclassName Eclispe Eclipse->run-arguments VM arguments -Xms32m- Xmx800m Eclilpse VMarguments -Xms32m-Xmx800m java.lang.OutOfMemoryError:PermGen space PermGen space Permanent Generation space , , JVMClassMeta,ClassLoader PermGen space ,(Instance)Heap , GC(Garbage Collection) PermGen space CLASS, PermGen space ,webJSP preco mpile WEB APP jar, jvm(4M) MaxPermSize TOMCAT_HOME/bin/catalina.sh “echo"Using CATALINA_BASE:$CATALINA_BASE"” JAVA_OPTS="-server-XX:PermSize=64M-XX:MaxPermSize=128m jar tomcat/shared/lib jar java.lang.OutOfMemoryError:Java heap space Heap size JVMjavaJVM .JVM Heap size (-Xms) 1/64 (-Xmx) 1/4JVM -Xmn-Xms-Xmx Heap size Young Generation TenuredGeneraion JVM98GC Heap size 2 Heap Size 80 - Xms -Xmx -Xmn 1/4 -Xmx Heap size TOMCAT_HOME/bin/catalina.sh “echo"Using CATALINA_BASE:$CATALINA_BASE"” JAVA_OPTS="-server-Xms800m-Xmx800m-XX:MaxNewSize=256m" 1G java jvm JAVA_OPTS="-server-Xms800m-Xmx800m-XX:PermSize=64M- XX:MaxNewSize=256m-XX:MaxPermSize=128m- Djava.awt.headless=true" webtomcat myeclipsetomcattomcat TOMCAT_HOME/bin/catalina.bat set JAVA_OPTS=-server-Xms2048m-Xmx4096m-XX:PermSize=512M- XX:MaxPermSize=1024M-Duser.timezone=GMT+08 set JAVA_OPTS=-Xmx1024M-Xms512M-XX:MaxPermSize=256m myeclipse Myeclipse->preferences->myeclipse->servers->tomcat- >tomcat×.×->JDK Optional Java VM arguments - Xmx1024M-Xms512M-XX:MaxPermSize=256m myeclipseTomcat "ava.lang.OutOfMemoryError:Java heap space" Myeclipse->preferences->myeclipse>servers->tomcat- >tomcat×.×->JDK Optional Java VM arguments -Xmx1024M-Xms512M- XX:MaxPermSize=256m 4tomcat {tomcat_home}/conf/web.xml listingsfalse <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> 5Tomcat tomcat tomcat conf server.xml <host/> <Context path="/hello" docBase="D:/eclipse3.2.2/forwebtoolsworkspacehello/WebRoot"deb ug="0" privileged="true"> </Context> Context web webapps conf Catalina localhost xml xml <Context path="/hello"docBase="D:eclipse3.2.2forwebtoolsworksp aceheloWebRoot" debug="0"privileged="true"> </Context> 3 path URL XML 23 : tomcat tomcat war 6Tomcat Tomcat web : • web.xml jsp Servlet tomcat jvm • CPU • CPU • -Xmx-Xms-XX:MaxPermSize full GC • • Nginxcssjs tomcat gziptomcat Nginx gzip 300kbkb • tomcatNginx tomcatsession nginx+tomcat+memcachedweb • tomcat tomcat7conf/server.xml dns <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" maxThreads="500" minSpareThreads="20" acceptCount="100" disableUploadTimeout="true" enableLookups="false" URIEncoding="UTF-8"/> 1.2JVM 1Java Java 7 1 . • • • Class 2 . Class .: • Class . • : • • 3 . Java public static int value=123;//value0 123 4 . 5 . java 6. 7. 2java • • static • . class final • RAM • new Java , • 1.Java Perm Gen space ? JVM JVM 3JVMClass Java Class JVM JVM .class Java ClassLoader new JVM class.forName() JVM JVM Java .class Java JVM • class • 3 • class • • • 4GC ? GC? GC (GabageCollection) Java GC Java 5 Java Java JVM 6 ?( GC ) : 1 . “”, . A B B A AB 2 . () : GC Roots GC Roots Java GC Roots : • • • • JNI GC Root . GC Root finalize() finalize() finalize() F-Queue Finalize() finalize() F-Queue GC F-Queue ” ” 7 2 Java C++ Java Java “”"" 8?? ? GC GC GC (heap) ” ”” ” GC “ ”GC System.gc() GC Java GC 9Java Java Java GC : import java.io.IOException; public class GarbageTest { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub try { gcTest(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("has exited gcTest!"); System.in.read(); System.in.read(); System.out.println("out begin gc!"); for(int i=0;i<100;i++) { System.gc(); System.in.read(); System.in.read(); } } private static void gcTest() throws IOException { System.in.read(); System.in.read(); Person p1 = new Person(); System.in.read(); System.in.read(); Person p2 = new Person(); p1.setMate(p2); p2.setMate(p1); System.out.println("before exit gctest!"); System.in.read(); System.in.read(); System.gc(); System.out.println("exit gctest!"); } private static class Person { byte[] data = new byte[20000000]; Person mate = null; public void setMate(Person other) { mate = other; } } } Java : Java java ( map ) Java ( null ): public class Stack { private Object[] elements=new Object[10]; private int size = 0 ; public void push(Object e){ ensureCapacity(); elements[size++] = e; } public Object pop(){ if( size == 0) throw new EmptyStackException(); return element s[--size]; } private void ensureCapacity(){ if(elements.length == size){ Object[] oldElements = elements; elements = new Object[2 * elements.length+1]; System.arraycopy (oldElements,0, elements, 0, size); } } } 10 : K G public class Bad{ public static Stack s=Stack(); static{ s.push(new Object()); s.pop(); // s.push(new Object()); // } } static Stack 100 100 Stack 100 ! : HashSet HashSet contains HashSet HashSet 10 Person p=new Person(“”); 11System.gc() Runtime.gc() ? JVM JVM 12finalize() ? (finalization) ? (garbage colector) finalize() Java filalize() finalize() ? Java JNI(Java Native Interface) non-Java (C C++) finalize() 13 null ? 14(DGC)?? DGC RMI DGC RMI DGC 15(serial)(throughput) ? ( 100M ) 16 Java ? 17 Java Minor GC Major GC • Eden • • Eden Minor GC Minor GC Eden Gc ; Full GC/Major GC GC Minor GC Full GC Minor GC 18JVM ? (Full GC) : Java 8 native 19Java ? - : : 1. ; 2. GC : 1:1 8:1:1 Eden Survior Eden Eden Eden Survivor (java ) - : - ; : 20? : • (BootstrapClassLoader)Java Java • (extensions class loader): Java Java Java • (system class loader): Java (CLASSPATH) Java Java ClassLoader.getSystemClassLoader() • java.lang.ClassLoader 21? 3Mysql 1SpringCloud 1 Spring Cloud? Spring cloud Spring Boot Spring Spring cloud Task 2 Spring Cloud ? Spring Boot • - • - • - • -- • - • -Devops 3?Spring Cloud ? Eureka Eureka Eureka 4? 5 Hystrix?? Hystrix 9 1000. hystrix Hystrix Fallback employee-consumer employee-consumer employee-producer Hystrix 6 Hystrix ?? employee-consumer Hystrix firstPage method() Hystrix firtsPage 7 Netflix Feign?? Feign RetrofitJAXRS-2.0 WebSocket java Feign http apis employee-consumer employee- producer REST REST • • URL • REST 1. @Controller 2. public class ConsumerControllerClient { 3. 4. @Autowired 5. private LoadBalancerClient loadBalancer; 6. 7. public void getEmployee() throws RestClientException, IOExc eption { 8. 9. ServiceInstance serviceInstance=loadBalancer.choose("employ ee-producer"); 10. 11. System.out.println(serviceInstance.getUri()); 12. 13. String baseUrl=serviceInstance.getUri().toString(); 14. 15. baseUrl=baseUrl+"/employee"; 16. 17. RestTemplate restTemplate = new RestTemplate(); 18. ResponseEntity<String> response=null; 19. try{ 20. response=restTemplate.exchange(baseUrl, 21. HttpMethod.GET, getHeaders(),String.class); 22. }catch (Exception ex) 23. { 24. System.out.println(ex); 25. } 26. System.out.println(response.getBody()); 27. } NullPointer Netflix Feign Netflix Ribbon Feign 8 Spring Cloud Bus?? : Spring Cloud Config Spring Cloud Config GIT Employee Config Module Eureka GIT Eureka Eureka / url Employee Producer1 8080 http:// localhost:8080 / refresh Employee Producer2 http:// localhost:8081
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages127 Page
-
File Size-