目錄(255章)
倒序
- coverpage
- Title Page
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the author
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Money – The Quote Manager Application
- Setting up the environment
- The application architecture
- Application project highlights
- The build
- The persistence layer
- The service layer
- The JAX-RS layer
- The WebSocket layer
- Provision some data
- Application summary
- The application business
- The application design
- The application server
- Testing the application
- Get a quote price the JAX-RS way
- Get the price the WebSocket way
- Setting up MySQL
- Conclusion
- Summary
- Looking Under the Cover – What is This EE Thing?
- Context and Dependency Injection – what did you do to my beans?
- IoC – a pretty simple example
- The main features of CDI
- Injections
- Scopes
- Interceptors/decorators
- Events
- Dynamic lookups
- JAX-RS – the servlet router
- The router
- Marshalling
- Filter and interceptors
- @Suspended or asynchronous operation
- JPA – the database link
- From JPA to the database
- Model and implications
- The Java Transaction API
- Server resources
- DataSource configuration
- Java EE and performances
- Ensure you know the server
- Ensure you know your application
- Ensure you know your resources
- Summary
- Monitor Your Application
- Java tools to know what my application is doing
- The jcmd command – the small command line utility that does a lot
- Thread.print
- Memory
- JVisualVM – the UI for JVM monitoring
- How to connect remotely
- Java Mission Control
- GlassFish ad hoc monitoring
- Libraries monitor your application
- Counters gauges timers and more
- Instrumenting the code
- CDI instrumentation
- Implementing your own configurable monitoring interceptor
- Javaagent – a complex but powerful instrumentation
- Sirona javaagent
- SQL Monitoring
- Data aggregation
- Tracing
- APM
- Summary
- Application Optimization – Memory Management and Server Configuration
- Java and the memory
- Garbage collector
- Garbage collector algorithms
- The serial collector
- Parallel and parallel compacting collectors
- Concurrent Mark Sweep (CMS)
- Garbage First (G1)
- Common memory settings
- Debugging GC behavior
- Heap dump
- Java EE and the resources
- DataSource
- Java EE and pools
- Java EE and HTTP pools
- Java EE implicit features
- Summary
- Scale Up – Threading and Implications
- Java EE threading model
- Thread data and consistency
- Concurrent data access
- Java and thread safety
- Synchronized
- Locks
- java.util.concurrent
- The volatile data
- Java EE and threads
- CDI asynchronous events
- EJB @Asynchronous
- EE concurrency utilities for Java EE
- ManagedExecutorService
- ManagedScheduledExecutorService
- Java EE threads
- ContextService
- EJB @Lock
- HTTP threads
- Server side
- Client side
- Reactive programming and Java EE
- Message passing and Java EE
- Summary
- Be Lazy; Cache Your Data
- Caching challenges
- How does the cache work?
- The cache key
- Eviction policy
- Least Recently Used (LRU)
- First In First Out (FIFO)
- Random
- Least Frequently Used (LFU)
- Cache eviction trigger
- Cache storage – memory or not
- Consistency of the data
- HTTP and caching
- Cache-Control
- ETag
- Vary
- HTTP caching and the Java EE API
- HTTP 2 promise
- JCache – the standard cache of Java EE
- Setting up JCache
- Programmatic API
- JCache configuration
- CDI integration
- Cache configuration
- @CacheDefaults
- Cache key
- Cache once
- Summary
- Be Fault-Tolerant
- It will fail no doubt!
- Load balancing – pick the best one
- Transparent load balancing – client versus server
- Common strategies
- The round-robin algorithm
- Random load balancing
- Link to failover
- Sticky session
- The scheduling algorithm
- Load balancing or proxy – additional features
- Failover
- Switching to another system
- Local fallback
- Fallback code structure
- Microprofile to the rescue
- Failover extension
- Fallback handling – caching an alternative solution
- Circuit breaker
- Bulk head
- Timeouts
- Timeouts for code without timeouts
- Summary
- Loggers and Performances – A Trade-Off
- I log you log they log
- Logging frameworks and concepts
- Logger
- Logger Factory
- LogRecord
- Handler
- Filter
- Formatter
- Level
- Logging invocations
- Filters
- Formatters
- Using handlers
- Logging components and Java EE
- Logging patterns
- Testing your level
- Using templates in your messages
- Asynchronous or not?
- Logging implementations – which one to pick
- Logging facade – the good bad idea
- Logging frameworks
- Log4j
- Log4j2
- Logback
- JUL
- Choosing an implementation
- Summary
- Benchmarking Your Application
- Benchmarking – validating your application against your SLA
- Benchmark benchmark benchmark
- Preparing your benchmark
- Defining the benchmark criteria
- Defining the metric
- Defining acceptance criteria
- Defining the scenario
- Defining the environment
- The machines
- The network
- Databases and remote services
- The server
- Automatize your scenarios
- JMeter
- Gatling
- Other tools
- Ensuring you have support
- Time boxing your optimization benchmark
- Installing and resetting procedures
- Benchmark iterations
- Iterating
- Changing a single setting at a time
- Resetting any state between runs
- Warming up your system
- After your benchmark
- Writing a report
- Updating your default configurations
- Reviewing the conclusions
- Enriching your project backlog
- Summary
- Continuous Performance Evaluation
- Writing performance tests – the pitfalls
- Writing performance tests
- JMH – the OpenJDK tool
- Writing a benchmark with JMH
- The state
- Creating your first JMH benchmark
- BlackHole to be a star
- Running the benchmarks
- Integrating JMH with JUnit
- ContiPerf
- Arquillian and ContiPerf – the diabolic pair
- JMeter and build integration
- Gatling and continuous integration
- Deploying your (benchmark) application
- Continuous integration platform and performance
- Summary
- Another Book You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-30 19:15:07
推薦閱讀
- Learning OpenDaylight
- PLC控制程序精編108例
- Kali Linux滲透測試全流程詳解
- Extending Bootstrap
- 突破平面3ds Max動畫設計與制作
- Application Development in iOS 7
- Windows Server 2012網絡操作系統項目教程(第4版)
- OpenSolaris設備驅動原理與開發
- 寫給架構師的Linux實踐:設計并實現基于Linux的IT解決方案
- Distributed Computing with Go
- Troubleshooting Docker
- iOS 10 開發指南
- 統信UOS應用開發進階教程
- Web Penetration Testing with Kali Linux(Third Edition)
- Linux從入門到精通(視頻教學版)
- VMware vSphere 5.1 Cookbook
- 計算機應用基礎(Windows 7+Office 2010)
- Linux指令從初學到精通
- Instant Getting Started with VMware Fusion
- 深入理解嵌入式Linux設備驅動程序
- 馴獅記:Mac OS X 10.8 Mountain Lion使用手冊
- Docker on Windows
- Docker技術入門與實戰(第2版)
- Hands-On Reactive Programming with Python
- Kubernetes生產化實踐之路
- Instant Haml
- Windows PowerShell實戰指南(第3版)
- Kali Linux:An Ethical Hacker's Cookbook(Second Edition)
- 電腦辦公從入門到精通(Windows 7+Office 2013版)
- MATLAB控制系統設計與仿真